android mkdirs 不起作用,Android mkdirs()创建一个零字节文件而不是文件夹
在我的
Android應用程序中,我試圖在SD卡上創(chuàng)建以下文件夾:
/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卡上創(chuàng)建其他文件夾和文件而沒有問題.
該應用程序適用于以下手機:
> Nexus S(扎根)運行姜餅(2.3)
>運行Jelly Bean的Nexus S(無根)(4.1??.2)
> HTC Desire(rooted)運行Froyo(2.2)
> HTC Desire(無根)運行Froyo(2.2)
但是在運行Ice Cream Sandwich(4.0.4)的三星Galaxy Nexus手機(無根)上,該目錄被創(chuàng)建為零大小的文件,可以在Astro中看到. exists()調用返回false.
>正如您從文件夾名稱中看到的,我正在使用Apache Felix.如果不存在,Felix會自動創(chuàng)建緩存目錄.在Galaxy Nexus上,它總是抱怨它無法創(chuàng)建緩存目錄. Astro顯示0字節(jié)文件而不是文件夾.這就是我決定在初始化Felix之前嘗試自己創(chuàng)建緩存文件夾的原因.
>所以,我自己創(chuàng)建了緩存文件夾.該應用程序第一次正常工作,我可以在Astro中看到該文件夾??正常.如果我關閉應用程序,然后刪除Astro中的文件夾,然后重新啟動應用程序,甚至我的代碼神秘地無法創(chuàng)建緩存目錄,Astro顯示0字節(jié)文件.
>在Astro中無法刪除0字節(jié)文件.但是,當我重新啟動手機時,文件夾神奇地存在并且沒問題.
>我使用FileInstall來觀看OSGiComponents / install文件夾.當我將捆綁罐放入該文件夾時,它會在除Galaxy Nexus之外的所有手機上檢測并安裝好(當應用程序第一次運行時). FileInstall沒有關于無法查看目錄的日志/錯誤.
>我已經(jīng)在2臺Galaxy Nexus手機上測試了這個,同樣的問題.
我懷疑這是一個權限問題,但我不確定它是什么,以及為什么創(chuàng)建一個0字節(jié)文件而exists()返回false.代碼中沒有其他地方我創(chuàng)建此文件.
關于可能出現(xiàn)什么問題的任何建議?
謝謝 :)
更新:我想我已經(jīng)確定了這個問題,請看我發(fā)布的答案.
總結
以上是生活随笔為你收集整理的android mkdirs 不起作用,Android mkdirs()创建一个零字节文件而不是文件夹的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: js异步编程
- 下一篇: python棋盘最短路径_【leetco
