0
AndroidのSDカードにファイルを書き込むことのない小さなコードがあります。Androidは1つのディレクトリにファイルを作成するのではなく、別のディレクトリに作成します
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/
に書き込むと成功します。
どうすれば可能ですか?
うん、やって!共通の落とし穴.. – slhck