繁体   English   中英

如何从外部存储的根目录中删除文件或目录(...可移动 sdcard 根目录)

[英]How to delete file or directory from root directory of external storage (...removable sdcard root directory)

我正在构建一个存储管理器应用程序,但我无法在外部存储上删除/重命名/创建文件

我使用file.delete()代码进行内部存储,它的工作原理很好,但它不适用于外部存储文件,也尝试过

DocumentFile fileUri = DocumentFile.fromFile(file);
fileUri.delete();

而且它也很有效

每次用户想要删除/重命名/创建文件时,如何在不使用Intent.ACTION_OPEN_DOCUMENT_TREE的情况下写入外部存储?

  • 文件路径是/storage/5A85-D438/*files or a folders*

  • 已经添加了以下权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

包括android:requestLegacyExternalStorage="true"

您可以在 Output Stream 上使用 DocumentFile 和 createFile。

if (!t.getString("muri", "").equals("")) {

try{
muri = t.getString("muri", "");
Uri treeUri = Uri.parse(muri);

final int takeFlags =
intent.getFlags() & 
(Intent.FLAG_GRANT_READ_URI_PERMISSION | 
Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
this.getContentResolver()
.takePersistableUriPermission(treeUri, takeFlags);

DocumentFile mr = DocumentFile.fromTreeUri(this, treeUri);
DocumentFile nf = mr.createFile("text/plain", "JAMZ");

OutputStream os = 
getContentResolver().openOutputStream(nf.getUri());
os.write(pass.getBytes());
os.close(); 

wuri = nf.getUri().toString();
t.edit().putString("wuri", wuri).commit();

} catch (Exception e) {}}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM