8

Android の場合、次のコードは、ディレクトリに対応する DocumentFile の作成に使用できる Uri を返します。

Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
startActivityForResult(intent, REQUEST_CODE_CUSTOM_FOLDER);

ライブラリの多くのメソッドではパラメーターが java.io.File である必要があるため、DocumentFile から java.io.File を取得できるかどうか疑問に思っています。

例として、返されるドキュメント ツリー Uri の treeUri は次のとおりです。

treeUri.getPath():/tree/primary:DCIM/deeper/evendeeper
treeUri.toString(): content://com.android.externalstorage.documents/tree/primary%3ADCIM%2Fdeeper%2Fevendeeper

以下は、ADM に表示されるディレクトリです。 ここに画像の説明を入力

4

4 に答える 4

0

はい、できます。API 30+ の場合、完全なストレージ アクセスが必要です。また、API 28- の場合、必要なのはManifest.permission.READ_EXTERNAL_STORAGE.

SimpleStorageを使用すると、次のように変換できDocumentFileますjava.io.File

val file: File? = documentFile.toRawFile(context)?.takeIf { it.canRead() }
于 2021-06-10T06:43:11.403 に答える