【问题标题】:Why file isn't being deleted with file.delete()? [closed]为什么文件没有被 file.delete() 删除? [关闭]
【发布时间】:2019-06-03 22:46:50
【问题描述】:

我无法从 sdcard 中删除文件。

File toDelete = new File(fname);
boolean result=toDelete.delete();

结果是假的。同一文件的读取和写入在同一应用程序中运行。 没有打开的流。没有提出异常。 我试图在以这种方式删除之前使其可写

toDelete.setWritable(true);

没有效果。 怎么可能系统可以读写,但不能删除同一个文件???

【问题讨论】:

  • 请添加更多关于如何构建文件路径的代码
  • 这个文件可以读写,路径和权限没有问题,系统拒绝删除
  • 我认为您正在以编程方式或运行时创建文件?我对吗?
  • 该文件是上次启动时由同一个应用创建的
  • 好吧,这就是为什么文件没有被删除......你能告诉我们创建文件和删除文件代码吗?

标签: android file


【解决方案1】:

使用下面的代码可能会对您有所帮助。

            File fdelete = new File(file_dj_path);
        if (fdelete.exists()) {
            if (fdelete.delete()) {
                System.out.println("file Deleted :" + file_dj_path);
            } else {
                System.out.println("file not Deleted :" + file_dj_path);
            }
        }

删除图片后刷新图库

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
 Uri.parse("file://" +  Environment.getExternalStorageDirectory())));

检查这个:https://stackoverflow.com/a/10716773/1168654

【讨论】:

  • 嗨!谢谢你的回答,但文件并没有一直被删除,它仍然保留在 sd 卡上,我可以通过 ./adb shell 看到
  • 您能否向我们展示您的问题中有关文件路径的更多代码..??
【解决方案2】:

尝试这样做

 File fileToDelete = new File(YourPath);
 boolean deleted = fileToDelete.delete();

重新装卡并检查

 sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
                     Uri.parse("file://"
                               + Environment.getExternalStorageDirectory())));

【讨论】:

  • 这种方式行不通
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-18
  • 2012-09-22
  • 1970-01-01
  • 2020-11-27
  • 2014-08-12
相关资源
最近更新 更多