2015-07-21 220 views
2

我一直在尝试使用cordova将名为versions.txt的文件从applicationDirectory复制到externalApplicationStorageDirectory,但代码失败。使用Cordova复制文件

这里是代码

var path = cordova.file.applicationDirectory + "www/Data/versions.txt"; 

     window.resolveLocalFileSystemURL(path, 
     function gotFile(fileEntry) 
     { 

      window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, 
       function onSuccess(fileSystem) 
       { 
         var directory = new DirectoryEntry("versions.txt", path); 

         fileEntry.copyTo(directory, 'versions.txt', 
          function() 
          { 
           alert('copying was successful') 
          }, 
          function() 
          { 
           alert('unsuccessful copying') 
          }); 

       }, null); 
     },null); 

任何帮助吗?

回答

2

现在起作用了,应该解析目标目录。

这里是解决

window.resolveLocalFileSystemURL(cordova.file.externalApplicationStorageDirectory, 
         function onSuccess(dirEntry) 
         { 
          //alert(JSON.stringify(dirEntry)); 

          fileEntry.copyTo(dirEntry, 'versions.txt', 
           function() 
           { 
            alert('copying was successful') 
           }, 
           function() 
           { 
            alert('unsuccessful copying') 
           }); 
         }, null); 
1

的fileEntry.copyTo不知何故总是给错误,所以我尝试了fileEntry.moveTo如下,它很适合我,从WWW复制任何文件到说的图书馆iOS设备的文件夹。

function copyToLocation(fileName){  
console.log("Copying :"+fileName); 
    window.resolveLocalFileSystemURL(cordova.file.applicationDirectory+"www/"+fileName,function (fileEntry) 
    { 
     window.resolveLocalFileSystemURL(cordova.file.dataDirectory,function (directory) 
     {     
      fileEntry.moveTo(directory, 'new_fileName.txt',function(){ 
       alert('Successful Copy!'); 
      }, 
      function() 
      { 
       alert('Copying Unsuccessful '); 
      }); 
     },null); 
    }, null); 
}