我正在尝试使用$ cordovaFile从Android设备中删除文件。使用$ cordovaFileTransfer在以下位置下载了要删除的文件。

ft.download(url, cordova.file.externalDataDirectory + "episodes/" + episodeId + ".mp3",...);


使用设备上的文件管理器,我可以看到文件位于file:///storage/emulated/0/Android/data/com.ionicframework.myapp123456/files/episodes/

`但是,当我尝试使用以下任一位置删除文件时,出现错误代码5(ENCODING_ERR)

$cordovaFile.removeFile("file:///storage/emulated/0/Android/data/com.ionicframework.myapp123456/files/episodes/",  "0.mp3")

$cordovaFile.removeFile(cordova.file.externalDataDirectory + "episodes/",  "0.mp3")


当我尝试使用$ cordovaFile.checkDir()时,会发生相同的错误,所以我改用window.resolveLocalFileSystemURL()。

最佳答案

通过使用LocalFileSystem解决了此问题。它不像文件插件提供的方法那样复杂,但是可以工作。

var uri = cordova.file.externalDataDirectory + "episodes/";

window.resolveLocalFileSystemURL(uri, function(dir) {
        dir.getFile(episodeId + ".mp3", { create: false }, function(file) {
            file.remove(successCallback, errorCallback);
        });
}, errorCallback);

07-24 09:29