android保存uri,android-将文件PATH转换为TreeUri(存储访问框架)

在我的图片库应用程序中,我使用媒体内容提供者图片来扩大回收者视图.长按图像时,我为用户提供了重命名该图像文件的选项.因此,对于回收者视图中的每个图像,我都有完整的文件路径(例如:/ /storage/sdcard1/DCIM/100ANDRO/ak.jpg).然后,我想重命名该文件.

现在的问题是,由于提供的文件路径是外部SD卡的路径,对于Android 5&向上,需要SAF(存储访问框架)来写入文件.

因此,通常我们使用以下代码使用SAF重命名文件:-

public void onActivityResult(int requestCode, int resultCode, Intent resultData){

if (resultCode == RESULT_OK) {

Uri treeUri = resultData.getData();

getContentResolver().takePersistableUriPermission(treeUri,

Intent.FLAG_GRANT_READ_URI_PERMISSION |

Intent.FLAG_GRANT_WRITE_URI_PERMISSION);

DocumentFile pickedDir = DocumentFile.fromTreeUri(this, treeUri);

DocumentFile newFIle = pickedDir.createFile("text/plain","MyFile")

// or rename as

pickedDir.renameTo("fdtd.jpg");

} else {

Log.d("test","NOt OK RESULT");

}

}

但是当我们知道TreeUri时就是这种情况.在我的情况下,我知道文件路径,因此想将其转换为TreeUri.

解决方法:

要将文件路径转换为uri,请使用以下命令:

DocumentFile fileuri = DocumentFile.fromFile(new File(filepath));

然后您可以对该文件uri执行删除,重命名操作.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值