我使用客户端Javascript并希望获取一个文件夹中的所有文件的列表,我认为该文件夹与我的.html文件位于同一服务器上。我对术语非常不熟悉,所以如果我不准确或者只是错误,我会提前道歉。
我目前使用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);
});
}
因为我可以用这种非常垃圾的方式获得一个列表,我认为必须有一些(更多,更多)优雅的方法来实现我的目标。这可能吗?
答案 0 :(得分:2)
根据定义,如果您使用客户端javascript,则无法访问服务器的文件夹结构。您可以编写一个单独的ajax调用或者具有服务器端脚本(无论是什么语言)的内容,这些脚本将通过目录并将它们打印到json文件中,然后您可以使用其中的javascript进行处理。像这样:
ajax.php:
$directory = "temp/";
$dir = opendir($directory);
$structure = array();
while($file = readdir($dir)){
$structure[] = $file;
}
print json_encode($structure);
exit();
然后你将有一些调用该脚本并通过json文件解析的javascript