【发布时间】:2018-12-28 12:57:16
【问题描述】:
我正在尝试通过此代码从内存手机内存中删除歌曲文件:
private void deleteSongs(){
String path = song.getPath();
File songFile = new File(path);
Log.d(TAG, "Song exists: " + songFile.exists());
Log.d(TAG, "Song is directory: " + songFile.isDirectory());
Log.d(TAG, "Song path: " + songFile.getPath());
Log.d(TAG, "Song name: " + songFile.getName());
if(songFile.delete())
Log.d(TAG, "Song deleted successfully by File.delete()");
else{
Log.d(TAG, "Can't delete file by File.delete()");
if(getActivity().deleteFile(songFile.getName()))
Log.d(TAG, "Song deleted successfully by Activity.deleteFile()");
else
Log.d(TAG, "Can't delete file by Activity.deleteFile()");
}
}
但它不起作用。 Logcat 说:
D/DeleteSongDialog: Song exists: true
D/DeleteSongDialog: Song is directory: false
D/DeleteSongDialog: Song path: /storage/emulated/0/Download/2 sekundowy film-20.m4a
D/DeleteSongDialog: Song name: 2 sekundowy film-20.m4a
D/DeleteSongDialog: Can't delete file by File.delete()
D/DeleteSongDialog: Can't delete file by Activity.deleteFile()
带有 FileProvider 的 solution 不适用于 Android >= 8.0,但适用于例如 Android 7.0。也许有人知道我应该在我的或@CodeToLife 代码中更改什么?
提前致谢。
【问题讨论】:
-
为了确保你做的一切都是正确的,你能检查一下“songFile.exists()”和“songFile.isDirectory()”的输出吗?
-
@HirasawaYui,我发布了 Logcat。
标签: java android file delete-file android-8.1-oreo