Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以使用Javascript获取文件目录列表吗?_Javascript_Csv_D3.js_Directory - Fatal编程技术网

我可以使用Javascript获取文件目录列表吗?

我可以使用Javascript获取文件目录列表吗?,javascript,csv,d3.js,directory,Javascript,Csv,D3.js,Directory,我正在使用客户端Javascript,希望获得一个文件夹中所有文件的列表,我认为该文件夹与我的.html文件位于同一服务器上。我对这个术语非常不熟悉,所以如果我不准确或者完全错了,我会提前道歉 我目前使用d3.text(“js/data/nodes#.csv”,“text/csv”,someFunction)来加载数据文件。我想,由于我想要的所有文件名都是以相同的方式模板化的,我可以通过循环所有可能的数字来破解一个解决方案,只获取有效调用的文件名,如下所示: function getDirLis

我正在使用客户端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);
    });
}

因为我可以用这种非常垃圾的方式得到一份清单,我想一定有一些(更多、更多)优雅的方法来实现我的目标。这可能吗?

根据定义,如果您使用的是客户端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),。。。???