我可以使用Javascript获取文件目录列表吗?
我正在使用客户端Javascript,希望获得一个文件夹中所有文件的列表,我认为该文件夹与我的.html文件位于同一服务器上。我对这个术语非常不熟悉,所以如果我不准确或者完全错了,我会提前道歉 我目前使用我可以使用Javascript获取文件目录列表吗?,javascript,csv,d3.js,directory,Javascript,Csv,D3.js,Directory,我正在使用客户端Javascript,希望获得一个文件夹中所有文件的列表,我认为该文件夹与我的.html文件位于同一服务器上。我对这个术语非常不熟悉,所以如果我不准确或者完全错了,我会提前道歉 我目前使用d3.text(“js/data/nodes#.csv”,“text/csv”,someFunction)来加载数据文件。我想,由于我想要的所有文件名都是以相同的方式模板化的,我可以通过循环所有可能的数字来破解一个解决方案,只获取有效调用的文件名,如下所示: function getDirLis
d3.text(“js/data/nodes#.csv”,“text/csv”,someFunction)
来加载数据文件。我想,由于我想要的所有文件名都是以相同的方式模板化的,我可以通过循环所有可能的数字来破解一个解决方案,只获取有效调用的文件名,如下所示:
function getDirList() {
var possiblePathsList = something predetermined;
var directoryList = [];
possiblePathsList.forEach(function(path){
if (isPath(path)) { directoryList.push(path); }
});
return directoryList;
}
function isPath(path){
d3.text(path, "text/csv", function(data){
return (data !== null);
});
}
因为我可以用这种非常垃圾的方式得到一份清单,我想一定有一些(更多、更多)优雅的方法来实现我的目标。这可能吗?根据定义,如果您使用的是客户端javascript,则它无法访问服务器的文件夹结构。您可以编写一个单独的ajax调用,或者编写一个服务器端脚本(使用任何语言),该脚本将遍历目录并将它们打印到json文件中,然后您就可以在那里使用javascript进行处理。大概是这样的: ajax.php:
$directory = "temp/";
$dir = opendir($directory);
$structure = array();
while($file = readdir($dir)){
$structure[] = $file;
}
print json_encode($structure);
exit();
然后,您将有一些javascript调用该脚本并通过json文件进行解析不是现成的!请记住,您正在向实现端点的服务器发出HTTP请求,在本例中为静态文件提供服务。如果需要目录列表,则您拥有的服务器必须实现目录列表端点。服务器软件或您的服务器是什么?Apache,Express(nodejs),。。。???