web-dev-qa-db-ja.com

Android 4.1.2の外部ストレージパブリックディレクトリドキュメントにファイルを保存する方法

Android 4.1.2スマートフォンのドキュメントディレクトリにファイルを保存したい。

このコードスニペット:

File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS),"test.txt");

この例外をスローします:

E/AndroidRuntime﹕ FATAL EXCEPTION: main
Java.lang.NoSuchFieldError: Android.os.Environment.DIRECTORY_DOCUMENTS

これが機能している間:

File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS),"test.txt"); 

しかし、ダウンロードではなく、ドキュメントディレクトリにファイルを保存したいと思います。 DIRECTORY_DOCUMENTSは、Android 4.4以降でのみ利用可能です。ただし、スマートフォンにドキュメントディレクトリがあります。それをドキュメントに保存するソリューションはありません。

答えのTHX

小石

15
pebbles

Android 4.1.2。にないため、DIRECTORY_DOCUMENTSにアクセスできないby DIRECTORY_DOCUMENTS(存在しないため)これを解決するには、ディレクトリが存在しない場合はディレクトリを作成し、そのフォルダへのパスを手動で取得する必要があります。

File docsFolder = new File(Environment.getExternalStorageDirectory() + "/Documents");
boolean isPresent = true;
if (!docsFolder.exists()) {
    isPresent = docsFolder.mkdir();
}
if (isPresent) {
    File file = new File(docsFolder.getAbsolutePath(),"test.txt"); 
} else {
    // Failure
}
18
Arjun

このフォルダーは、Android)の古いバージョン(Api 1以降)に存在しますが、バージョン4.4(Api 19-KitKat)では、フィールドDIRECTORY_DOCUMENTSが最初に使用できます。

私の解決策は、古いAndroidバージョンの場合はDIRECTORY_DOCUMENTSではなくEnvironment.getExternalStorageDirectory() + "/Documents"を使用することでした。

8
iwanlenin