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

时间:2014-10-01 20:45:33

标签: javascript csv d3.js directory

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

因为我可以用这种非常垃圾的方式获得一个列表,我认为必须有一些(更多,更多)优雅的方法来实现我的目标。这可能吗?

1 个答案:

答案 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