我有一個Android內部存儲問題。我在包根文件夾中創建了一個文件夾,調用getDir()
和MODE_WORLD_WRITEABLE
,因爲我想讓相機應用程序在此文件夾中寫入捕獲的圖像。無論如何,我可以看到捕獲的圖像在DDMS
的文件夾內。 問題是我無法讀取該文件。Android內部存儲讀取文件
我試圖讀取文件使用此代碼:
File file = context.getDir("images", Context.MODE_WORLD_READABLE);
File image = new File(file, "image.jpeg");
if (image.canRead())
Log.w("read", "can read");
else
Log.w("read", "can't read");
而在logcat中,只有第二條消息(無法讀取)。
我也嘗試使用文件名創建FileInputStream
,但我收到FileNotFoundException
。
有人能告訴我我在做什麼錯嗎?
在此先感謝
編輯:
讀取文件是正確的,但唯一的問題是,當凸輪的應用程序是保存圖像到指定的位置,允許通過凸輪的應用程序被設置到圖像文件是-rwxrwx---.
改變後使用
adb (chmod 777 image.jpeg)
我能夠讀取圖像。有趣的是,凸輪應用程序正在使用----rwxr-x
將圖像文件寫入sdcard
。
有沒有辦法在運行時更改文件權限?
你是否確定該文件在軟件包根目錄中,而不是在'files'子目錄中?將文件放入程序包根目錄本身並不常見。 – 2012-03-22 23:23:59
在包根目錄下是文件夾_images_,並在該文件夾內有文件。如果設備沒有外部存儲,我正在使用內部存儲。我不知道如何使用MODE_WORLD_WRITEABLE在_files_中創建文件夾,以便cam應用程序可以寫入捕獲的圖像。 – Emran 2012-03-22 23:30:25