java - Android 使用 URI 删除文件不起作用

标签 java android io

所以我想要的是使用URI删除文件

不标记重复

我尝试了很多答案,但我试过的问题在这里没有任何效果

How to delete file that is created using Uri?

Delete file using Uri

How to delete file that is created using Uri?

我编写代码从图库中获取图像,然后将其复制到名为“.blackhat”的目录并删除原始图像(一种移动文件功能)。但它不起作用。即使它不是生成日志,所以我可以检查错误。 此代码适用于复制文件但复制后不能删除....

if(requestCode == 2 && data.getData() !=null){
        if(cd == null){
            path.add(data.getData());
            Random rn = new Random();
            if(copyFileFromUri(this,data.getData(),String.valueOf(rn.nextInt(500)))){
                File fdelete = new File(data.getData().getPath());
                if (fdelete.exists()) {
                    if (fdelete.delete()) {
                        Log.d("delete","deleted");
                    } else {
                        Log.d("delete","not deleted");
                    }
                }
                Toast.makeText(this, "Done", Toast.LENGTH_SHORT).show();
            }

        }else{
            for(int i=0;i<data.getClipData().getItemCount();i++){
                path.add(data.getClipData().getItemAt(i).getUri());
                Log.d("RjList",path.get(i).toString());
                Random rn=new Random();
                if(copyFileFromUri(this,data.getClipData().getItemAt(i).getUri(),String.valueOf(rn.nextInt(500)))){
                    File fdelete = new File(data.getClipData().getItemAt(i).getUri().getPath());
                    if (fdelete.exists()) {
                        if (fdelete.delete()) {
                            Log.d("delete","deleted");
                        } else {
                            Log.d("delete","not deleted");
                        }
                    }
                    Toast.makeText(this, "Done", Toast.LENGTH_SHORT).show();
                }
            }
        }
    }

我哪里做错了???? 提前致谢...

最佳答案

public static boolean delete(final Context context, final File file) {
final String pathone = MediaStore.MediaColumns.DATA + "=?";
final String[] selectedArgs = new String[] {
        file.getAbsolutePath()
};
final ContentResolver contentResolver = context.getContentResolver();
final Uri fileUri = MediaStore.Files.getContentUri("external");

contentResolver.delete(fileUri, pathone, selectedArgs );

if (file.exists()) {

    contentResolver.delete(fileUri, pathone, selectedArgs );
}
return !file.exists();
}

关于java - Android 使用 URI 删除文件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51473940/

相关文章:

java - 以编程方式关闭屏幕

java - 在 Tomcat 中访问 externalize application.properties for Spring boot 应用程序?

java - JBoss 7.0.1 xa 数据源异常。 javax.transaction.xa.XAException

java - 相机拍的照片越来越模糊

gdb - 如何使用 gdb 进行输入重定向?

c# - 如何使用 TPL 的 ActionBlock 写入文件?

java - 写入类资源是保存文件的好方法吗?

java - 在 fragment 之间滑动

android - 编写一个Android应用程序来截取屏幕截图

java - 为什么有时这不起作用?