我有一个为 Android 设备编写的项目。它每天都会生成大量文件。这些都是文本文件和图像。该应用程序使用数据库来引用这些文件。
该应用程序应该在稍微使用后(可能几天后)清除这些文件,但这个过程可能会或可能不会起作用。这不是这个问题的主题。
由于历史事故,文件的组织有些幼稚:所有内容都在同一个目录中;一个.hidden
包含零字节.nomedia
文件的目录,以防止 MediaScanner 对其进行索引。
今天,我看到一个错误报告:
java.io.IOException: Cannot create: /sdcard/.hidden/file-4200.html
at java.io.File.createNewFile(File.java:1263)
关于 sdcard,我看到它有足够的存储空间,但计数
$ cd /Volumes/NO_NAME/.hidden
$ ls | wc -w
9058
删除一些文件似乎允许今天的文件创建继续进行。
遗憾的是,我没有尝试touch
使用新文件来尝试在命令行上重现错误;我还删除了数百个文件,而不是少数。
但是,我的问题是:
- 目录中的文件大小或文件数量是否有硬性限制?
- 我什至在正确的轨道上吗?
Nota Bene:SD 卡是原样的 - 即我没有格式化它,所以我猜它是 FAT-* 格式。
FAT-32 格式有 2GB 文件大小的硬性限制(远高于我正在处理的文件大小)和根目录中的文件数量限制。我绝对不会在根目录中写入文件。