2016-12-08 40 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

私は最近、このアプリでこれを行う必要がありました。 Androidのファイル転送ユーティリティが正しく更新されなかったことが

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); 

注、:私の代わりにwindow.requestFileSystem()window.resolveLocalFileSystemURL()方法を使用していました。 USBケーブルを外して再接続しなければならなかったので、ディレクトリが表示されました。これは、実際にファイルエクスプローラで問題になる可能性があります(コードを変更する前に確認してください)。

+0

ありがとうございます!できます! –

1

私はあなたが(そのようにファイルブラウザでそれを見ることができるように)どこかの公共の中に入れたい場合は、thisを見直す必要があり、ポイントはあなたがアプリケーションデータディレクトリ(プライベート)内のファイルを保存していることであると信じていますdocsなどの公共の場所を選択してください。たとえば、cordova.file.externalRootDirectory

関連する問題