2010-11-21 115 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

相关问题