使用javascript获取子文件夹名称

时间:2012-08-21 15:35:24

标签: javascript jquery tree subdirectory

我一直在寻找一段时间,我似乎找不到从特定目录中获取子文件夹列表的方法。

一个例子是,如果我在www.mysite.com/projects和项目内部有几个包含单个项目文件的文件夹。

我想要这样做的原因是我要制作一个脚本,使用子文件夹名称将新项目的名称添加到菜单中。

我错过了什么吗?这甚至可以用JQuery或JavaScript吗?

我已经离开了获取路径名和位置,还看了一下ActiveXObjects,但无法在我的PC或服务器上运行任何东西。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

HTTP中没有目录。只有资源。

其中一些资源可能是一个HTML文档,其中列出了一些其他资源(位于运行HTTP服务器的计算机上的文件系统上的特定目录中)。大多数HTTP服务器都是generate such documents for you automatically

您需要让服务器为合适的请求生成合适的响应。然后使用(因为你提到jQuery)ajax()方法来发出请求。

然后你需要解析响应。您可以使用默认目录索引页然后解析返回的HTML,也可以编写服务器端程序以更好的格式生成数据(例如JSON)。

那说......

  

我想要这样做的原因是我要创建一个脚本,使用子文件夹名称将新项目的名称添加到菜单中。

你几乎肯定会在服务器上做得更好。您将获得更可靠,更快速且搜索引擎友好的结果。

答案 1 :(得分:0)

ActiveX是一种使JScript(Microsoft的JavaScript实现)能够访问客户端计算机的技术,它只适用于Internet Explorer。

服务器上的文件夹与文件系统中的文件夹不同。任何文件夹/子文件夹都有可能包含一个index.html,它输出一些文本(不一定是它包含的子文件夹列表)。

此外,大多数网络服务器配置都有一个活动选项,即使没有index.html存在,也不显示子文件夹列表。

您可以使用以下代码将index.php文件放在该文件夹中:

<?php
    $directories = scandir('.');
    header('Content-Type: application/json');
    echo json_encode($directories);

您可以这样收到此内容:

$.getJSON('http://domain.com/path/to/folder/', function(directories) {
    do_something(directories);//
});