Android デバイス用に作成されたプロジェクトがあります。毎日大量のファイルが生成されます。これらはすべてテキストファイルと画像です。アプリはデータベースを使用してこれらのファイルを参照します。
アプリは、少し使用した後 (おそらく数日後) にこれらのファイルを消去することになっていますが、このプロセスが機能している場合と機能していない場合があります。これはこの質問の主題ではありません。
歴史的な事故のため、ファイルの編成はやや単純です。すべてが同じディレクトリにあります。MediaScanner がインデックスを作成するのを防ぐための.hidden
ゼロ バイト ファイルを含むディレクトリ。.nomedia
今日、報告されたエラーが表示されます。
java.io.IOException: Cannot create: /sdcard/.hidden/file-4200.html
at java.io.File.createNewFile(File.java:1263)
SDカードに関しては、十分なストレージが残っているようですが、数えています
$ cd /Volumes/NO_NAME/.hidden
$ ls | wc -w
9058
いくつかのファイルを削除したことで、今日のファイル作成を進めることができたようです。
残念ながら、touch
コマンドラインでエラーを再現するために新しいファイルを作成しようとはしませんでした。また、一握りではなく数百のファイルを削除しました。
ただし、私の質問は次のとおりです。
- ディレクトリ内のファイルサイズまたはファイル数に厳しい制限はありますか?
- 私はここで正しい軌道に乗っていますか?
注記: SD カードは現状のままです。つまり、フォーマットしていないので、FAT-* フォーマットであると推測されます。
FAT-32 フォーマットには、2 GB のファイル サイズ (私が扱っているファイル サイズをはるかに超える) のハード リミットと、ルート ディレクトリ内のファイル数の制限があります。ルートディレクトリにファイルを書き込んでいるわけではありません。