创建一个独立的 html 页面,显示文件夹中所有文件的内容

Create a standalone html page which shows the contents of all files within a folder

我有以下文件夹结构:

index.html
my_folder
    |-- file1.txt
    |-- file2.txt
    |-- another_file.txt
    |-- ...

index.html 中,我想显示文件夹 my_folder 中每个文件的第一行,并将其列在 html table.[=14= 中]

有没有简单的方法来做到这一点?它应该适用于所有访问该文件夹的计算机,这些计算机没有 php 或任何 运行.

非常感谢!

没有。

本地网页无法读取它们所在文件夹的目录结构。(想象一下如果这可能会带来安全隐患,并且您双击了电子邮件附件中的 HTML 文件)。

如果您是 运行 HTTP 服务器,那么您可以使用服务器端代码(甚至是大多数服务器自动生成的基本目录列表页面)以 JavaScript 可访问的格式列出文件].

出于安全原因,您不能在 HTML 或 JavaScript 中执行此操作

但是您可以在浏览器中键入此内容以查看本地目录
"file:///C:/users//desktop/"

如上所说,我原本想要的显然是不可能的。 总结一下,这是我规避问题的方法:

关键是将文件夹结构更改为确定性的结构。我选择了:

index.html
    |-- 0/
        |-- info.txt
        |-- ...
    |-- 1/
        |-- info.txt
        |-- ...
    |-- 2/
        |-- info.txt
        |-- ...
    |-- ...

然后,我可以使用 XMLHttpRequest:

读取我的文件
<script>
var rawFile = [];
// 1000 is much larger than the total number of files
for(i = 0; i < 1000; i++) {
    var folderPath = "./" + i;
    rawFile[i] = new XMLHttpRequest();
    rawFile[i].open("GET", folderPath + "/info.txt", false);
    rawFile[i].onreadystatechange = function ()
    {
        if(rawFile[i].readyState === 4)
        {
            if(rawFile[i].status === 200 || rawFile[i].status == 0)
            {
                var data = rawFile[i].responseText;
                // do some formatting
                $("table").append(data);
            }
        }
    }
    rawFile[i].send(null);
}
</script>

可能不是最简洁的方法,而且绝对不灵活,但它确实有效。