Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 文件系统API-从目录拖放递归列出文件_Javascript_Html5 Filesystem - Fatal编程技术网

Javascript 文件系统API-从目录拖放递归列出文件

Javascript 文件系统API-从目录拖放递归列出文件,javascript,html5-filesystem,Javascript,Html5 Filesystem,我有一个循环,列出目录中的文件。从第一层往下走很好 Folder/1.jpg Folder/2.jpg 等等 但是如果我在主文件夹中有一个文件夹 Folder/nestedFolder/ console.log吐出 nestedFolder/1.jpg 但我想把它记录下来 Folder/nestedFolder/1.jpg 这是我的方法 function traverseFileTree(item,path){ path = path || ""; if (item.isFile

我有一个循环,列出目录中的文件。从第一层往下走很好

Folder/1.jpg
Folder/2.jpg
等等

但是如果我在主文件夹中有一个文件夹

Folder/nestedFolder/
console.log吐出

nestedFolder/1.jpg
但我想把它记录下来

Folder/nestedFolder/1.jpg
这是我的方法

function traverseFileTree(item,path){
  path = path || "";
  if (item.isFile){
    console.log(path + item.name);
  } else if (item.isDirectory){
    var directoryPath = item.name
    var dirReader = item.createReader();
    dirReader.readEntries(function(entries){
      for (var i=0; i < entries.length; i++){
        traverseFileTree(entries[i], directoryPath + "/")
      }
    });
  }
}
函数traverseFileTree(项,路径){
路径=路径| |“”;
if(item.isFile){
console.log(路径+项目名称);
}else if(项目isDirectory){
var directoryPath=item.name
var dirReader=item.createReader();
dirReader.readEntries(函数(条目){
对于(变量i=0;i
这就是传递目录的地方

function handleDrop(e) {
  var items = e.dataTransfer.items;
  var length = items.length;
  for (var i = 0; i < length; i++) {
    var item = items[i].webkitGetAsEntry();
    if(item){
      traverseFileTree(item);
    }
  }
};
功能手柄(e){
var items=e.dataTransfer.items;
变量长度=items.length;
对于(变量i=0;i
不得不改变

var directoryPath = item.name


如何传入参数?难道不能将
item.name
附加到现有的
directoryPath
而不是替换该值吗?然后您将保留整个路径,而不仅仅是当前目录。i、 e.
var directoryPath+=item.name
@MohammadAreebSiddiqui参见我的edit@aarosil
var directoryPath+=item.name
语法无效,并且directoryPath未从循环的一个步骤保存到下一个步骤。。。但是你的想法给了我答案
var directoryPath=path+item.name
var directoryPath = path + item.name