5

我使用文件输入和 webkitdirectory 加载了一个目录,如下所述。

<input  id="file_input"  type="file" webkitdirectory directory  />

选择目录后,我可以读取文件大小和其他信息。我的问题是如何使用 DirectoryReader 接口读取这个目录。

我尝试使用以下代码,但没有成功。results.length 变为零。我错过了什么吗?

window.requestFileSystem(TEMPORARY, 1024*1024 /*1MB*/, function(fs) {
        var dirReader = fs.root.createReader();
        var entries = [];
        // Call the reader.readEntries() until no more results are returned.
        var readEntries = function() {
            dirReader.readEntries(function(results) {
                // If no more results are returned, we're done.
                if (!results.length) {
                    // Sort list by name of entry.
                    entries.sort(function(a, b) {
                        return a.name < b.name ? -1 :
                        b.name < a.name ? 1 : 0;
                    });
                   // listResults(entries); // Render the list.
                } else {
                    // Add in these results to the current list.
                    entries = entries.concat(toArray(results));
                    readEntries();
                }
            }, errorHandler);
        };
        readEntries(); // Start reading the directory.
    }, errorHandler);

任何帮助表示赞赏。

4

1 回答 1

15

要读取目录的内容:

fs.root.getDirectory('Documents', {}, function(dirEntry){
  var dirReader = dirEntry.createReader();
  dirReader.readEntries(function(entries) {
    for(var i = 0; i < entries.length; i++) {
      var entry = entries[i];
      if (entry.isDirectory){
        console.log('Directory: ' + entry.fullPath);
      }
      else if (entry.isFile){
        console.log('File: ' + entry.fullPath);
      }
    }

  }, errorHandler);
}, errorHandler);

在上面的代码中,使用 isDirectory 和 isFile 属性分别为目录和文件获取不同的输出。此外,我们使用 fullPath 属性来获取条目的完整路径,而不仅仅是其名称。

来自: http: //net.tutsplus.com/tutorials/html-css-techniques/toying-with-the-html5-filesystem-api/

于 2012-04-19T18:35:33.113 回答