在我的Android應用程序,而不是,我想創建對SD卡的以下文件夾:的Android mkdirs()創建一個零字節文件的文件夾
/mnt/sdcard/OSGiComponents/admin/felix-cache/
下面的代碼:
File cacheDir =
new File(Environment.getExternalStorageDirectory().getAbsolutePath() +
"/OSGiComponents/admin/felix-cache/");
// Create the folder
cacheDir.mkdirs();
// Check if it exists
if (! cacheDir.exists()) {
Log.e ("Debug" , "Cache directory cannot be created");
}
我有Android清單文件清單標記下的WRITE_STORAGE_PERMISSION。我可以在SD卡上創建其他文件夾和文件,沒有問題。 該應用程序工作正常以下電話:
- 的Nexus S(源於)運行薑餅(2.3)
- 的Nexus S(無根)運行果凍豆(4.1.2)
- 的HTC Desire(源於)運行的是Froyo(2.2)
- 的HTC Desire(無根)運行升級Froyo(2.2)
然而在三星Galaxy Nexus手機(無根)運行冰淇淋三明治(4.0.4),該目錄中創建一個零大小的文件,它可以在Astro被看見。 exists()調用返回false。
- 你可以從文件夾名稱看,我使用Apache菲利克斯。如果Felix不存在,Felix會自動創建緩存目錄。在Galaxy Nexus上,它總是抱怨它無法創建緩存目錄。 Astro顯示0字節文件而不是文件夾。這就是爲什麼我決定嘗試在初始化Felix之前自己創建緩存文件夾。
- 所以,我自己創建了緩存文件夾。該應用第一次運行良好,我可以在Astro中看到該文件夾。如果關閉應用程序,然後刪除Astro中的文件夾,然後重新啓動應用程序,即使我的代碼神祕地無法創建緩存目錄,Astro顯示一個0字節的文件。
- 在Astro中無法刪除0字節的文件。但是,當我重新啓動手機時,該文件夾神奇地在那裏,並確定。
- 我使用FileInstall來觀察OSGiComponents/install文件夾。當我將捆綁包放入該文件夾時,除了Galaxy Nexus(當應用程序首次運行時)時,它會在所有手機上檢測到並安裝。 FileInstall沒有關於無法觀察目錄的日誌/錯誤。
- 我已經在2款Galaxy Nexus手機上測試過這個,同樣的問題。
我懷疑這是一個權限問題,但我不確定它是什麼,以及爲什麼在exists()返回false時創建一個0字節的文件。我在代碼中沒有其他地方創建這個文件。
關於可能是什麼問題的任何建議?
謝謝:)
更新:我想我已經確定的問題,請回答我張貼。
public static String FOLDER = Environment.getExternalStorageDirectory()。getPath()+「/ folder /」; 文件screensPath =新文件(FOLDER); screensPath.mkdirs(); 這可能工作。 – itsrajesh4uguys
謝謝,但不幸的是仍然給出了同樣的問題:(我認爲我已經確定了這個問題,我發佈了一個答案如下 –