java - 找不到文件异常: (file exists) - after manually deleting it

标签 java android filenotfoundexception

我偶然发现了一个一直困扰我的问题。我正在编写一个在外部存储上创建 mp3 文件的应用程序。问题是,如果我手动转到手机上创建的目录并删除该文件,每当我尝试创建相同的文件时,它都会抛出此错误:

java.io.FileNotFoundException:/storage/emulated/0/Ringtones/sound1.mp3:打开失败:EEXIST(文件存在)

选择要创建的其他声音效果很好,但在我手动删除它们后,由于该问题,它们无法再次创建。

我已经尝试在指示路径之后、FileOutputStream 之前删除文件,但没有成功。

有什么建议吗? 干杯。

最佳答案

在尝试创建同一文件的另一个副本之前,您需要确认媒体数据库。所以你需要在复制之前调用它:

sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(您的文件所在的文件夹路径)));

编辑:以上答案已已弃用!请使用以下方法:

File file = new File(outputPath + fileName);
String filePath = file.toString();
String mimeType = "video/mp4";

MediaScannerConnection.scanFile(this, new String[]{filePath}, new String[]{mimeType}, null);

outputPathfileName 示例:

String outputPath = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), "My App Name") + "/";
String fileName = "break dance" + ".mp4";

因此,文件文件 应该是您要更新的媒体的路径,因为它刚刚被删除或新添加,以便在图库中可见。

关于java - 找不到文件异常: (file exists) - after manually deleting it,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68974062/

相关文章:

Java 8 设置全局时间格式化程序

Java:将字符串拆分为单独的字符串和整数变量

java - 在谷歌应用引擎的数据存储中更新查询 - java

Android如何在android中检测Edittext的Copy事件

hadoop - HBase批量加载MapReduce HFile异常(netty jar)

java - 更改代码后让 gradle 自动构建

java - eclipse RCP 构建多个功能的更新站点

android - 清除我的 Android 应用程序中任何 Activity 的通知

检索文件名中包含变音符号的 url 时出现 java.io.FileNotFoundException

android-image - 如何正确捕获 Glide 异常?