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

时间:2015-02-10 13:27:37

标签: html file-io

我有以下文件夹结构:

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

index.html中,我想在文件夹my_folder中显示每个文件的第一行,并将其列在html表中。

有一种简单的方法吗?它应该适用于访问该文件夹的所有计算机,这些计算机没有php或任何正在运行的文件夹。

非常感谢!

3 个答案:

答案 0 :(得分:0)

没有。

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

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

答案 1 :(得分:0)

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

但是,您可以在浏览器中输入此内容以查看本地目录 "文件:/// C:/用户//桌面/"

答案 2 :(得分:0)

如上所述,我原本想要的显然是不可能的。 为了解决问题,这就是我如何规避问题:

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

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>

可能不是最干净的方式而且非常不灵活,但它确实有效。