2016-12-08 1 views
1

파일 플러그인을 사용하는 코드바 응용 프로그램이 있습니다. 응용 프로그램 내부에서는 문제가 없지만 내가 사용하는 파일은 파일 탐색기에 나타나지 않습니다.코르도바 파일이 디렉토리를 만들지 않습니다.

내 클래스입니다 : 응용 프로그램 드 파일 내부

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.requestFileSystem() 대신 window.resolveLocalFileSystemURL() 방법을 사용 : 그러나

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을 검토해야합니다. 예를 들어 cordova.file.externalRootDirectory

관련 문제