2016-04-26 68 views
0

我试图删除整个目录(该文件夹下的文件夹+文件)哪些文件被下载到外部存储基本目录:cordova.file.externalDataDirectory(如“文件///存储/模拟/ 0/Android设备/数据/ com.yourapp /文件”)。Cordova/Ionic - 如何删除外部存储文件和目录

但是,当我试图通过$ cordovaFile递归删除目录,如下图所示:

var baseDirectory = cordova.file.externalDataDirectory + 'attachments'; 
    $cordovaFile.removeRecursively(baseDirectory,"") 
     .then(function(success){ 
     console.log('Clear success'); 
     },function(err){ 
     loadingService.hideLoading(); 
    }) 

它抛出NO_MODIFICATION_ALLOWED错误: no_modification_allow_error

当我检查该文件夹的权限,我有写/执行正确。任何人都知道为什么会发生这种情况?

BTW,我也曾尝试window.requestFileSystem,遗憾的是,仍然没有工作out.Since文件系统是本地文件系统,我试图改变入门到外部文件系统,如

entry.nativeURL = cordova.file.externalDataDirectory; 

但我猜这是行不通的,因为读者没有任何东西。所以任何人都有关于如何删除整个目录的建议?

提前致谢!

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess, fail); 
    function fail(evt) { 
     console.log("FILE SYSTEM FAILURE" + evt.target.error.code); 
    } 

    function onFileSystemSuccess(fileSystem) { 
     fileSystem.root.getDirectory(
     "attachments", 
     {create : true, exclusive : false}, 
     function(entry) { 
      console.log(entry); 
      entry.nativeURL = cordova.file.externalDataDirectory; 
      var reader = entry.createReader(); 
      reader.readEntries(
      function(entries){ 
       console.log(entries); 
      }, 
      function(err){ 
       console.log(err); 
      } 
     ) 

      entry.removeRecursively(function() { 
      console.log('CLEAR success'); 
      }, fail); 
     }, fail); 
    } 
+0

错误代码为6的任何解决方案>> –

回答

0

如果您使用的是Android的棉花糖,确保使用最新版本的科尔多瓦文件的插件(4.2.0),因为它已经涉及到权限问题的修补程序。目录删除的代码片段如下,

function clearDirectory() { 
    if (ionic.Platform.isAndroid()) { 
     window.resolveLocalFileSystemURL(cordova.file.externalRootDirectory, onFileSystemDirSuccess, fail); 
    } else { 
     window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemDirSuccess, fail); 
    } 

function onFileSystemDirSuccess(fileSystem) { 
    var entry = ""; 
    if (ionic.Platform.isAndroid()) { 
     entry = fileSystem; 
    } else { 
     entry = fileSystem.root; 
    } 
    entry.getDirectory("DIRECTORY_TO_DELETE", { 
      create: true, 
      exclusive: false 
     }, 
     function(entry) { 
      entry.removeRecursively(function() { 
       console.log("Remove Recursively Succeeded"); 
      }, fail); 
     }, getDirFail); 
} 

function getDirFail(error) { 
    navigator.notification.alert("Error"); 
}; 

function fail(error) { 
    navigator.notification.alert("Error"); 
}; 
相关问题