我有一個爲Android設備編寫的項目。它每天都會生成大量文件。這些都是文本文件和圖像。該應用程序使用數據庫來引用這些文件。SD卡上的目錄中的文件數是否有限制?
應用程序應該稍微使用(也許幾天後)清除這些文件,但這個過程可能會或可能不會工作。這不是這個問題的主題。
由於歷史性事故,文件的組織有些天真:一切都在同一個目錄中;一個.hidden
目錄,其中包含一個零字節.nomedia
文件以防止MediaScanner將其編入索引。
今天,我看到了一個錯誤報告:
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
一個新文件來嘗試在命令行上重現錯誤;我也刪除了幾百個文件,而不是一小撮。
不過,我的問題是:
- 是對文件大小或文件的數量在一個目錄下有硬限制?
- 我甚至在這裏的正確軌道上?
Nota Bene: SD卡是原樣的 - 即我沒有格式化它,所以我猜想它會是FAT- *格式。
FAT-32格式對2GB文件大小(遠高於我正在處理的文件大小)以及根目錄中文件數量的限制有嚴格限制。我絕對不是在根目錄下寫文件。
很好的答案,包括初級研究。這聽起來非常可行。這個bug最近重新發生了,所以會測試這個理論,然後回報。 – jamesh 2010-04-20 23:22:40
絕對轟炸錢。文件名中包含大約108個字符的6k個文件。文件名中約有9個字符的3.5k文件。謝謝。 – jamesh 2010-04-21 20:05:00
太好了,非常感謝! – yava 2012-05-09 04:49:18