2016-12-08 120 views
1

我有一个使用文件插件的应用程序,在应用程序内一切正常,但我使用的文件没有出现在文件资源管理器中。Cordova文件没有创建目录

我的班级:

function FileCordova() { 

    this.createDir = function(dirName, callback) { 

     App.db.fsSetup(); 
     if (App.db.hasFS()) { 

      window.requestFileSystem(window.PERSISTENT, 0, function (f) { 
       f.root.getDirectory(dirName, {create: true}, function (d) { 
        typeof callback === 'function' && callback(d.name, d.fullPath); 
       }, 
       function(error, err2){ 
       console.log(error); 
       }); 
      }, function(error,err2){ 
       console.log(error); 
      }); 

     } else { 
      typeof callback === 'function' && callback(); 
     } 
    }; 

} 

里面的应用程序去文件出现,但我不能在根目录中找到。

回答

2

我刚刚不得不在我的应用程序中执行此操作。我用window.resolveLocalFileSystemURL()方法,而不是window.requestFileSystem()

var exportDirectory = ""; 
var subdir = "MySubdirectory"; 
// What directory should we place this in? 
if (cordova.file.documentsDirectory !== null) { 
    // iOS, OSX 
    exportDirectory = cordova.file.documentsDirectory; 
} else if (cordova.file.sharedDirectory !== null) { 
    // BB10 
    exportDirectory = cordova.file.sharedDirectory; 
} else if (cordova.file.externalRootDirectory !== null) { 
    // Android, BB10 
    exportDirectory = cordova.file.externalRootDirectory; 
} else { 
    // iOS, Android, BlackBerry 10, windows 
    exportDirectory = cordova.file.DataDirectory; 
} 

window.resolveLocalFileSystemURL(exportDirectory, function (directoryEntry) { 
    console.log("Got directoryEntry. Attempting to open/create subdirectory:" + subdir); 
    directoryEntry.getDirectory(subdir, {create: true}, function (subdirEntry) { 
     subdirEntry.getFile(filename, {create: true}, function (fileEntry) { 
      console.log("Got fileEntry for: " + filename); 
      fileEntry.createWriter(function (fileWriter) { 
       console.log("Got fileWriter"); 
       // make your callback to write to the file here... 
      }, exportFail); 
     }, exportFail); 
    }, exportFail); 
}, exportFail); 

注意,但是,Android的文件传输实用程序没有正确地刷新。我不得不断开/重新连接我的USB电缆,然后出现目录。这可能实际上是您的文件资源管理器的问题(即在更改代码之前检查它)。

+0

谢谢!有用! –

1

我相信问题在于您将文件保存在应用程序数据目录(私人)中,如果您想放置在公开的某个位置(允许以该方式在​​文件浏览器中查看它),您必须查看this docs并选择一个公共位置,例如在cordova.file.externalRootDirectory

相关问题