0

我已经环顾了很长时间,但似乎找不到从特定目录获取子文件夹列表的方法。

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

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

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

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

任何帮助,将不胜感激。

4

2 回答 2

3

HTTP 中没有目录之类的东西。只有资源。

其中一些资源可能是一个 HTML 文档,其中列出了一些其他资源(位于运行 HTTP 服务器的计算机上文件系统的特定目录中)。大多数 HTTP 服务器会自动为您生成此类文档

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

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

也就是说……</p>

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

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

于 2012-08-21T15:40:29.340 回答
0

ActiveX 是一种使 JScript(JavaScript 的 Microsoft 实现)能够更多地访问客户端计算机的技术,它仅适用于 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);//
});
于 2012-08-21T15:40:48.470 回答