【发布时间】:2011-02-08 18:18:54
【问题描述】:
我有一个为 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
删除一些文件似乎允许今天的文件创建继续进行。
很遗憾,我没有尝试touching 一个新文件来尝试在命令行上重现错误;我还删除了数百个文件,而不是少数。
但是,我的问题是:
- 对目录中的文件大小或文件数量是否有硬性限制?
- 我是否走在正确的轨道上?
注意事项: SD 卡是原样的 - 即我没有格式化它,所以我猜它是 FAT-* 格式。
FAT-32 格式具有 2GB 文件大小的硬性限制(远高于我正在处理的文件大小)和根目录中的文件数量限制。我绝对不是在根目录下写文件。
【问题讨论】:
标签: java android sd-card ioexception fat32