【问题标题】:How to create subfolder using Cordova如何使用 Cordova 创建子文件夹
【发布时间】:2013-09-16 11:10:02
【问题描述】:

我正在使用 Cordova,并尝试在设备上的 SD 卡的根目录下创建一个文件夹。我使用以下代码创建文件夹并在其中添加文件“login.txt”:

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);

function gotFS(fileSystem) {
   fileSystem.root.getDirectory("citylook", {create: true}, gotDir);
}

function gotDir(dirEntry) {
    dirEntry.getFile("login.txt", {create: true, exclusive: true}, gotFile);
}

function gotFile(fileEntry) {
    // Do something with fileEntry here
    fileEntry.createWriter(gotFileWriter, fail);
}

function gotFileWriter(writer) {
    writer.onwriteend = function(evt) {
        console.log("contents of file now 'some sample text'");
        writer.truncate(11);
        writer.onwriteend = function(evt) {
            writer.seek(0);
            writer.write(testo);
            writer.onwriteend = function(evt){
                console.log("contents of file now '"+testo+"'");
            }
        };
    };
    writer.write("some sample text");
}

function fail(error) {
    console.log(error.code);
}

现在,我需要在“citylook”文件夹中创建一个文件夹,所以我尝试了这个:

function onDeviceReady() {
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onSuccess, null);
}

function onSuccess() {
    fileSystem.root.getDirectory("citylook", {create: true, exclusive: false}, onGetDirectoryWin, onGetDirectoryFail);
    fileSystem.root.getDirectory("citylook/nuovo", {create: true, exclusive: false}, onGetDirectoryWin2, onGetDirectoryFail2);
}

但我无法创建子文件夹。我的代码有什么问题?谢谢。


已解决:

fileSystem.root.getDirectory("citylook", {create: true}, gotDir);
fileSystem.root.getDirectory("citylook/subfolder", {create: true}, gotDir);

【问题讨论】:

  • 您通过删除 {exclusive: false} 解决了问题?

标签: android directory cordova-3


【解决方案1】:
window.resolveLocalFileSystemURL(
        cordova.file.externalDataDirectory,
        function(entry) {
          entry.getDirectory(
            "myNewDirectory",
            { create: true, exclusive: false },
            function(result) {
              alert(JSON.stringify(result));
            },
            onError
          );
        }
      );

我正在使用cordova 创建一个文件夹到Android/data//files 成功。

【讨论】:

    【解决方案2】:
    var type = window.PERSISTENT;
       var size = 5*1024*1024;
    
       window.requestFileSystem(type, 0, successCallback, errorCallback);
       function successCallback(fs) {
           var dir=fs.root;
           alert('root   -'+dir.fullPath);// O/P:-root   -/
          dir.getDirectory('Albums', {create: true}, function(dirEntry) {
              alert('Albums Path:'+dirEntry.fullPath);// O/P:-Allbums Path: /Albums/
             dirEntry.getDirectory('Images',{create:true},function(subDir){
                                  alert('Hello');
                                  alert('SubDirPath='+subDir.fullPath);//output:-SubDirPath=/Albums/Images/
                 //subDir.getFile('Log.txt',{create: true, exclusive: false}, function(fileEntry) {
    
            //writeFile(fileEntry, null, isAppend);
                     //alert('File Path'+fileEntry.fullPath);
    
        }, onErrorCallback);
    
             },errorCallback);
              dirEntry.getDirectory('Audio',{create:true},function(subDir){
                                  alert('Hello');
                                  alert('SubDirPath='+subDir.fullPath);//output:-SubDirPath=/Albums/Audio/
             },errorCallback);
          }, errorCallback);
       }
            function errorCallback(error) {
          alert("ERROR: " + error.code)
       }
    

    此代码有助于在根目录中创建文件夹和子文件夹。 /Albums 是主文件夹。 /Albums/Images/ 和 /Albums/Audio/ 是子文件夹(图像和音频)

    【讨论】:

    • 添加一些解释,说明此答案如何帮助 OP 解决当前问题
    猜你喜欢
    • 1970-01-01
    • 2021-05-27
    • 2013-08-23
    • 2015-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-15
    相关资源
    最近更新 更多