Android不会在一个目录中创建File,而在另一个目录中创建File

时间:2010-11-21 21:26:36

标签: android file

我有一小段代码,不会将文件写入Android上的SD卡。

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/Android/data/org.my.app/files/thumbnailcache

以下是有趣的部分:当我尝试写入/mnt/sdcard/Test/时,它会成功。

这怎么可能?

1 个答案:

答案 0 :(得分:3)

你有

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

许可?