2016-04-26 38 views
0

外部ストレージのベースディレクトリにダウンロードされたディレクトリ(フォルダの下のフォルダ+ファイル)を削除しようとしました:cordova.file.externalDataDirectory "file /// storage/emulated/0/Android/data/com.yourapp/files")。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

私は、フォルダのアクセス許可を確認しながら、私が書き込みを持っています/実行する権利。これがどうして起こるのか、誰にでも分かりますか?

はところで、私も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"); 
}; 
関連する問題