11

DownloadManagerを使用してAndroidデバイスにファイルをダウンロードしています。以下を使用して、DCIM、ダウンロード、Picuturesフォルダーなどにダウンロードすることを選択できます。

downloadRequest.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "file.jpg");

これは機能します。ただし、ダウンロード先のフォルダーの制限セットしか選択できません。/sdcard/を使用してSDカードのルートにダウンロードしたい

私は試した:

downloadRequest.setDestinationUri(Uri.fromFile(new File("/sdcard/file.jpg")));

ただし、これにより次の例外が発生します。

IllegalStateException:Androidの無効な宛先の組み合わせ:4、パス:/sdcard/file.jpg

これどうやってするの?必要な権限をすべて設定しました。

4

4 に答える 4

27

このようにしてみてください。

downloadRequest.setDestinationInExternalPublicDir("/folderName",file.jpg);

これにより、外部ストレージルートにフォルダが作成され、その中にfile.jpgが配置されます。

于 2012-10-19T10:22:58.943 に答える
2

を使用して修正しました

request.setDestinationInExternalPublicDir( "/APP_NAME/", FileNameGetter.getFileName(DATA..url) );
于 2013-07-13T06:32:26.740 に答える
1

公式ドキュメントによると、使用可能なEnvironment.DIRECTORY_*定数の1つを使用して、次のバリアントのいずれかのみを使用する必要があります。

myRequest.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "my_sub_folder/my_file.txt");

ここで、ディレクトリタイプ(つまり、最初のパラメータ)は、、nullまたは

myRequest.setDestinationInExternalFilesDir(myContext, null, "my_sub_folder/my_file.txt");
// or
// myRequest.setDestinationInExternalFilesDir(myContext, Environment.DIRECTORY_PICTURES, "my_sub_folder/my_picture.jpg");

ここで、ディレクトリタイプ(つまり、2番目のパラメータ)ですnull

いずれの場合も、最後のパラメーターで(サブ)フォルダーを指定することはオプションです。

于 2017-07-04T16:07:07.970 に答える
0

Not one of standard directories: /folderName。動作するにはsetDestinationInExtrnalPublicDir()、指定されたパスが音楽、ダウンロードなどの標準ディレクトリの1つである必要があります。

于 2022-02-03T14:18:12.237 に答える