2015-09-04 35 views
1

獲取文件列表目錄中的科爾多瓦

function onDeviceReady() { 
 
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess, onFileSystemFail); 
 
} 
 

 
function onFileSystemSuccess(fileSystem) { 
 
    var directoryEntry = fileSystem.root; 
 
    directoryEntry.getDirectory("MyDirectory", {create: true, exclusive: false}, onDirectorySuccess, onDirectoryFail); 
 
} 
 

 
function onDirectorySuccess(parent) { 
 
    var directoryReader = parent.createReader(); 
 
    directoryReader.readEntries(success, fail); 
 
} 
 

 
function fail(error) { 
 
    alert("Failed to list directory contents: " + error.code); 
 
} 
 

 
function success(entries) { 
 
    if (entries.length == 0) 
 
     console.log("No Records"); 
 
    else 
 
    { 
 
     for (var i = 0; i < entries.length; i++) { 
 
      entries[i].file(function (file) { 
 
       console.log("file.name " + file.name); 
 
      }) 
 
     } 
 
    } 
 
    console.log('file list created'); 
 
} 
 

 
function onDirectoryFail(error) { 
 
    alert("Unable to create new directory: " + error.code); 
 
} 
 

 
function onFileSystemFail(evt) { 
 
    console.log(evt.target.error.code); 
 
}

使用上面的代碼中,我得到的文件列表。但問題是在這個代碼中「console.log('file list created')」是先執行,然後執行「console.log('file.name'+ file.name)」。我需要列出文件名,然後列出創建的信息,或者我需要知道列表何時完全創建。提前致謝。

回答

1

只需將執行console.log的if語句:

function success(entries) { 
    if (entries.length == 0) 
     console.log("No Records"); 
    else 
    { 
     for (var i = 0; i < entries.length; i++) { 
      entries[i].file(function (file) { 
       console.log("file.name " + file.name); 
      }) 
     } 
     console.log('file list created'); 
    } 
}