我有以下文件夹结构:
index.html
my_folder
|-- file1.txt
|-- file2.txt
|-- another_file.txt
|-- ...
在index.html
中,我想在文件夹my_folder
中显示每个文件的第一行,并将其列在html表中。
有一种简单的方法吗?它应该适用于访问该文件夹的所有计算机,这些计算机没有php或任何正在运行的文件夹。
非常感谢!
答案 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>
可能不是最干净的方式而且非常不灵活,但它确实有效。