5

ビットマップを Pictures ディレクトリに保存しようとしています。これがコードです

            File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);

            File file = new File(path, "test1.PNG");
            try { 
                   path.mkdirs();
                   OutputStream out = new FileOutputStream(file);
                   mBitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
                   out.flush();
                   out.close();

            } catch (Exception e) {
                   e.printStackTrace();
                   Log.w("ExternalStorage", "Error writing " + file, e);
            }

OutputStream out = new FileOutputStream(file); しかし、 I used the debugger and the full path returnsmnt/sdcard/Pictures/test1.PNGで実行がスタックしました。mnt/なぜ私が通り抜けられなかったのOutputStream out = new FileOutputStream(file);ですか? sdcard/ファイルディレクトリでしか見ることができないからです。

ありがとう!

4

3 に答える 3

3

/sdcard/mnt/sdcard...へのソフトリンクであり/sdcard、ファイルシステムでのみ読み取られるため、/mnt/sdcard/..を使用することをお勧めします。

于 2012-09-24T12:37:48.333 に答える
1

これを mnt/sdcard または sdcard/ として使用して sdcard ディレクトリを取得してアクセスできます。これEnvironment.getExternalStorageDirectory()は、OS がどのように外部ディレクトリにアクセスして使用したかというデバイス依存のディレクトリであり、別のデバイスや別のディレクトリがこのメソッドによって返されたことを心配する必要はありません。

編集

外部ストレージにアクセスするには権限が必要で、androidmanifest.xmlファイルでユーザー権限として定義します

WRITE_EXTERNAL_STORAGE
于 2012-09-24T12:26:26.310 に答える
0

このように使う

 String filePath = "/sdcard/yourfile.txt";

 FileOutputStream os = null;
 os = new FileOutputStream(filePath); 
 os.write(write it to file);
 os.close();
于 2012-09-24T12:23:54.767 に答える