2010-11-21 10 views
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/に書き込むと成功します。

どうすれば可能ですか?

答えて

3

あなたは

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

権限を持っているのですか?

+0

うん、やって!共通の落とし穴.. – slhck

関連する問題