2010-11-21 154 views
0

我有一小段代碼不會將文件寫入Android上的SD卡。Android不會在一個目錄中創建文件,但會在其他目錄中創建文件

InputStream in = thumbnailUrl.openStream(); 
File outputFile = new File(CACHE_DIR, photo.getId()); 
if (!outputFile.canWrite()) { 
    throw new IOException("Can't write to this file"); 
} 
FileOutputStream fos = new FileOutputStream(outputFile); 
BufferedOutputStream bos = new BufferedOutputStream(fos, 1024); 

byte[] data = new byte[1024]; 
int datapart; 

while ((datapart = in.read(data, 0, 1024)) >= 0) { 
    bos.write(data, 0, datapart); 
} 

bos.close(); 
fos.close(); 
in.close(); 

我確定我之前創建了文件夾CACHE_DIR。它存在於SD卡上,但canWrite()總是返回false。這是路徑:我可以瀏覽目錄/mnt/sdcard/Android/data/org.my.app/files/thumbnailcache

這裏有趣的部分:當我嘗試寫入/mnt/sdcard/Test/,它成功。

這怎麼可能?

回答

3

你有沒有

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

許可?

+0

是的,我願意!常見陷阱 – slhck 2010-11-21 21:33:45

相關問題