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

FileSystem API - Recursively listing files from directory drag and drop

本文关键字:拖放 文件 API- 递归 文件系统      更新时间:2023-09-26

我有一个循环,它列出了目录中的文件。下到第一层效果很好。

Folder/1.jpg
Folder/2.jpg

等等。

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

Folder/nestedFolder/

控制台日志显示

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 + "/")
      }
    });
  }
}

这就是中传递目录的地方

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);
    }
  }
};

只需要更改

var directoryPath = item.name

var directoryPath = path + item.name