Конвертировать файл в файл документа - PullRequest
0 голосов
/ 27 мая 2018

Я хочу преобразовать File (/storage/A54E-14E9/bp.mp4) в DocumentFile

Uri из DocumentFile должно быть content://com.android.externalstorage.documents/tree/A54E-14E9%3A/document/A54E-14E9%3Abp.mp4

, но при использовании DocumentFile.fromFile(file).getUri()он возвращает не правильно Uri:

file:///storage/A54E-14E9/bp.mp4

Так что это отличается от того, когда вы получаете его в onActivityResult после вызова startActivityForResult(new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE), REQUEST_CODE_STORAGE_ACCESS);

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REQUEST_CODE_STORAGE_ACCESS && resultCode == RESULT_OK) {
            Uri treeUri = data.getData();
            mDocumentDir = DocumentFile.fromTreeUri(this, treeUri);
            for (DocumentFile file : mDocumentDir.listFiles()) {
                // one of them is content://com.android.externalstorage.documents/tree/A54E-14E9%3A/document/A54E-14E9%3Abp.mp4
                Log.i(TAG, file.getUri());
            }
        }
    }

или если это невозможно, то какчтобы найти то, что равно File (/storage/A54E-14E9/bp.mp4) в:

// in onActivityResult
for (DocumentFile file : mDocumentDir.listFiles()) {
    Log.i(TAG, file.getUri());
}

просто не рекомендуется проверять имена файлов, мне нужно проверять абсолютные пути (если они равны), также файл может бытьпомещен в подфодлер, что усложняет задачу

Моя задача - удалить File с карты MicroSD , это можно сделать с помощью DocumentFile после запроса хранилища (ACTION_OPEN_DOCUMENT_TREE)но мне нужно как-то получить право DocumentFile, что равно моему File

...