Phonegap Cordova删除文件(android)

时间:2014-04-24 10:01:20

标签: java cordova filesystems

西洛..

我是手机新手......

我在android phonegap 3.4中删除文件时遇到了问题

console.log(photo);    

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0,
  function onFileSystemSuccess(fileSystem) {
    fileSystem.root.getFile(
      photo, {create: false},
      function gotFileEntry(fileEntry) {
        fileEntry.remove();
      },
      onError);
  },
  onError);

记录结果

04-24 16:29:54.234:I / Web Console(16213):file:///storage/sdcard0/DCIM/Camera/1398331773136.jpg

04-24 16:49:01.989:W / System.err(18864):org.apache.cordova.file.EncodingException:此路径中包含无效的“:”。

04-24 16:49:01.994:W / System.err(18864):at org.apache.cordova.file.LocalFilesystem.getFileForLocalURL(LocalFilesystem.java:159)

04-24 16:49:01.994:W / System.err(18864):at org.apache.cordova.file.FileUtils.getFile(FileUtils.java:698)

04-24 16:49:03.664:I / Web Console(18864):5

搜索之后,我在doc

中得到了这个(错误代码和含义列表)

5 = ENCODING_ERR

是文件路径错误以及如何在sdcard中获取文件的有效路径?

由于

2 个答案:

答案 0 :(得分:7)

我认为您的问题在于您调用回调函数的方式。这段代码对我有用:

console.log("remove file");
var relativeFilePath = "MyDir/file_name.png";
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem){
    fileSystem.root.getFile(relativeFilePath, {create:false}, function(fileEntry){
        fileEntry.remove(function(file){
            console.log("File removed!");
        },function(){
            console.log("error deleting the file " + error.code);
            });
        },function(){
            console.log("file does not exist");
        });
    },function(evt){
        console.log(evt.target.error.code);
});

答案 1 :(得分:6)

访问以file://开头的绝对路径的最简单方法是使用window.resolveLocalFileSystemURL()

var url = "file:///storage/emulated/0/Android/data/myPackageName/cache/1461244585881.jpg";

window.resolveLocalFileSystemURL(url, function(file) {
        file.remove(function(){
          console.log(url + " deleted");
        },onError);
      }, onError);

其他有用的链接: