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@aarosilvar directoryPath+=item.name
语法无效,并且directoryPath未从循环的一个步骤保存到下一个步骤。。。但是你的想法给了我答案var directoryPath=path+item.name
var directoryPath = path + item.name