web-dev-qa-db-ja.com

Android Environment.getExternalStorageDirectory()の使用方法

Environment.getExternalStorageDirectory()を使用して、SDカードから保存されたイメージを読み取るにはどうすればよいですか?

52
Moe
Environment.getExternalStorageDirectory().getAbsolutePath()

SDカードのフルパスを提供します。その後、標準Javaを使用して通常のファイルI/O操作を実行できます。

ファイルを書き込むための簡単な例を次に示します。

String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
String fileName = "myFile.txt";

// Not sure if the / is on the path or not
File f = new File(baseDir + File.separator + fileName);
f.write(...);
f.flush();
f.close();

編集:

おっと-あなたは読書のための例が欲しかった...

String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
String fileName = "myFile.txt";

// Not sure if the / is on the path or not
File f = new File(baseDir + File.Separator + fileName);
FileInputStream fiStream = new FileInputStream(f);

byte[] bytes;

// You might not get the whole file, lookup File I/O examples for Java
fiStream.read(bytes); 
fiStream.close();
80
debracey

ただし、一部の電話ではgetExternalStorageDirectory()が適切に機能しないことに注意してください。 Motorola razrmaxx。2枚のカード/ mnt/sdcardと/ mnt/sdcard-extがあり、内部および外部のSDカードに対応しています。/mnt/sdcardは毎回のみ返信されます。 Googleはそのような状況に対処する方法を提供する必要があります。多くのSDカード対応アプリ(つまり、カードバックアップ)がこれらの携帯電話で惨めに失敗するので。

36
halxinate

ドキュメンテーション Environment.getExternalStorageDirectory() で説明されているとおり:

Environment.getExternalStorageDirectory()プライマリ共有/外部ストレージディレクトリを返します。

これは、イメージの読み取り方法の例です。

String fileName = "stored_image.jpg";
 String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
 String pathDir = baseDir + "/Android/data/com.mypackage.myapplication/";

 File f = new File(pathDir + File.separator + fileName);

        if(f.exists()){
          Log.d("Application", "The file " + file.getName() + " exists!";
         }else{
          Log.d("Application", "The file no longer exists!";
         }
0
Jorgesys