javascript,html5:e.dataTransfer.items vs e.dataTransfer.files,如何使用前者获得文件大小?

javascript,html5:e.dataTransfer.items vs e.dataTransfer.files,如何使用前者获得文件大小?,javascript,html,drag-and-drop,Javascript,Html,Drag And Drop,在删除文件并访问这些文件的信息时,使用 let files= e.dataTransfer.files; 您可以检查文件大小()。但是如果你用的是更新的(据我所知是替代品) 那么就无法访问文件大小() 哪种方法才是知道被删除文件大小的正确方法 答:通过使用.getAsFile()访问文件 但是,在读取目录时如何做到这一点?参见代码 let items = e.dataTransfer.items; for (let i=0; i < items.length; i++) { le

在删除文件并访问这些文件的信息时,使用

let files= e.dataTransfer.files;
您可以检查文件大小()。但是如果你用的是更新的(据我所知是替代品)

那么就无法访问文件大小()

哪种方法才是知道被删除文件大小的正确方法

答:通过使用.getAsFile()访问文件

但是,在读取目录时如何做到这一点?参见代码

let items = e.dataTransfer.items;
for (let i=0; i < items.length; i++) {
    let item = items[i].webkitGetAsEntry();
    if (item && item.isFile)
        console.log(items[i].getAsFile()); // HERE IT WORKS
    else if (item && item.isDirectory) {
        item.createReader().readEntries(function(entries) {
            for (let j=0; j<entries.length; j++)
                see_file(entries[j].getAsFile()); // HERE IT DOES NOT WORK
        });
    }
}
let items=e.dataTransfer.items;
for(设i=0;i对于(假设j=0;j,根据评论中提供的答案,我们得出以下结论:

如果删除的项目是目录,则该行

item.createReader().readEntries(function(entries) {
生成本身作为
item.webkitGetAsEntry()
实例的
条目数组

无法访问“父级”,类似于

 for (let j=0; j<entries.length; j++) {
   let parent = entries[j].parent;
   console.log(parent.webkitGetAsEntry());
   console.log(parent.getAsFile());
   //console.log(entries[j].getAsFile()) -> this fails
}
for(设j=0;j此操作失败
}
但是,从上面提到的答案代码中,我们可以做到这一点

 for (let j=0; j<entries.length; j++) {
  entries[j].file(function(file) {
    console.log(file.webkitGetAsEntry());
    console.log(file.getAsFile());
  });
}

for(让j=0;j根据评论中提供的答案,我们得出以下结论:

如果删除的项目是目录,则该行

item.createReader().readEntries(function(entries) {
生成本身作为
item.webkitGetAsEntry()
实例的
条目数组

无法访问“父级”,类似于

 for (let j=0; j<entries.length; j++) {
   let parent = entries[j].parent;
   console.log(parent.webkitGetAsEntry());
   console.log(parent.getAsFile());
   //console.log(entries[j].getAsFile()) -> this fails
}
for(设j=0;j此操作失败
}
但是,从上面提到的答案代码中,我们可以做到这一点

 for (let j=0; j<entries.length; j++) {
  entries[j].file(function(file) {
    console.log(file.webkitGetAsEntry());
    console.log(file.getAsFile());
  });
}

for(让j=0;jIs回答您的问题“哪种方法才是知道被删除文件大小的正确方法?”不包括在问题本身“当删除文件并访问这些文件的信息时,使用
let files=e.dataTransfer.files;
您可以检查文件大小”?使用
event.dataTransfer.files
有什么问题?据我所知,.files似乎被弃用,取而代之的是.items(?)您能否提供指向您所读内容的链接,其中
.files
被弃用?“但是,在读取目录时如何做到这一点?”你最新查询的解决方案可以在这个问题的答案中找到。我正在阅读这个问题,但即使这个问题包含在其他问题中,它也回答了许多其他问题,这使得这个问题的答案在那里变得非常模糊。也许从那里提取问题并在这里提供它会很有用。是吗他回答了您的问题“哪种方法才是知道被删除文件大小的正确方法?”问题本身未包括“当删除文件并访问这些文件的信息时,请使用
let files=e.dataTransfer.files;
您可以检查文件大小”?使用
event.dataTransfer.files
有什么问题?据我所知,.files似乎被弃用,取而代之的是.items(?)您能否提供指向您所读内容的链接,其中
.files
被弃用?“但是,在读取目录时如何做到这一点?”你的最新查询的解决方案可以在这个问题的答案中找到。我正在阅读这个问题,但即使这个问题包含在其他问题中,它也回答了许多其他问题,这使得这个问题的答案在那里变得非常模糊。也许从那里提取问题并在这里提供它会很有用。Inst在你的答案中提出问题的EAD,也许会考虑问一个单独的,具体的问题。你指的是“父节点”?你实际上想要达到什么?“父”节点是指父节点,如这里所解释的。我试图实现的是访问GETASFILE()。函数,现在我可以在本文中解释。
File
Directory
实例不是节点。您可以访问
Directory
实例的
if(entry.isFile){entry.File(function(File){listFile(File,entry.fullPath)。然后(resolve)}else if(entry.isDirectory){var reader=entry.createReader();}
在回答链接问题时是的,但是你能给我看任何解释这个的文档吗?我在任何地方都找不到描述的方法“file”是的,但是你能给我看任何解释这个的文档吗?我在任何地方都找不到描述的方法“file”请看,而不是问你的答案中的一个问题,也许考虑问一个单独的、具体的问题。你指的是“父节点”?你实际上想要实现什么?“父”节点是指父节点,如这里所解释的。我试图实现的是访问GETASFILE()。函数,现在我可以在本文中解释。
File
Directory
实例不是节点。您可以访问
Directory
实例的
if(entry.isFile){entry.File(function(File){listFile(File,entry.fullPath)。然后(resolve)}else if(entry.isDirectory){var reader=entry.createReader();}
在回答链接问题时是的,但是你能给我看任何解释这个的文档吗?我在任何地方都找不到描述的方法“file”是的,但是你能给我看任何解释这个的文档吗?我在任何地方都找不到描述的方法“file”参见