获取目录中所有文件夹的列表

时间:2013-03-21 00:37:36

标签: javascript jquery html5

所以我有一个如下所示的文件系统:

Music
- 001
-- song.mp3
- 002
-- song.mp3
- 003
- 004
- 005
-- song.mp3
musicplayer.html
musicplayer.js

我很好奇是否可以获得所有文件夹名称的列表?

这个javascript,html5,甚至是jQuery,我无法安装任何东西。

4 个答案:

答案 0 :(得分:13)

他的问题中有一点(HTML5)


  

我很好奇是否可以获得有关所有文件夹的列表   名字呢?这个javascript,甚至是jQuery,我无法安装任何东西

根本没有,但不是最后的答案!

JavaScript(JS)是一种解释型计算机编程语言。它最初是作为Web浏览器的一部分实现的,因此客户端脚本可以与用户交互,控制浏览器,异步通信以及更改显示的文档内容

有三种主要类型的JavaScript:

Client-Side JavaScript (CSJS) -- an extended version of JavaScript that enables the enhancement and manipulation of web pages and client browsers

Server-Side JavaScript (SSJS) -- an extended version of JavaScript that enables back-end access to databases, file systems, and servers

Core JavaScript -- the base JavaScript language

客户端JavaScript(CSJS)和服务器端JavaScript(SSJS)依赖于核心JavaScript,没有它就无法工作。

JavaScript和DOM为恶意作者提供了通过Web在客户端计算机上运行脚本的潜力。浏览器作者使用两个限制包含此风险。首先,脚本在沙箱中运行,其中只能执行与Web相关的操作, 不是通用编程任务,如创建文件 。其次,脚本受同一原始策略的约束:来自一个网站的脚本无法访问发送到另一个站点的用户名,密码或cookie等信息。大多数与JavaScript相关的安全漏洞都违反了相同的原始策略或沙箱。

通用JavaScript的子集 - ADsafe,安全ECMA脚本(SES) - 提供更高级别的安全性,尤其是在第三方创建的代码(例如广告)上。

  

我很好奇是否可以获得有关所有文件夹的列表   名字呢?使用 HTML5

HTML5提供FileSystem API,可以解决您的渴望,至少知道:) 请阅读此处的教程:http://www.html5rocks.com/en/tutorials/file/filesystem/

另一个解决方案是使用丑陋的浏览器Api,我从来没有推荐过
最佳解决方案 使用像php这样的服务器端语言

答案 1 :(得分:0)

您是否尝试获取客户端的文件系统?如果是这样,出于安全原因,Web浏览器通常会禁止此类行为。

如果您尝试在Web服务器上列出内容,则由于JavaScript在客户端的计算机上运行,​​因此如果没有AJAX则无法执行此操作。您需要有一些服务器代码才能为您列出目录,但这可能会带来潜在的安全风险。

我认为最好的办法是运行服务器端代码列出目录,在客户端代码上执行此操作并不是最安全的。

答案 2 :(得分:0)

如果您在客户端询问Javascript,是的,我们可以使用File API访问Mozilla Firefox,我不知道其他浏览器。

https://developer.mozilla.org/en-US/docs/Code_snippets/File_I_O

答案 3 :(得分:-2)

正如@Tariq所说,你可以用一些服务器端代码(如php)来实现这一目标。你可以通过ajax提交与root相关的目录路径(查看jquery $ .post()@ http://api.jquery.com/jQuery.post/)。

<?php
  if (isset($_POST['submit'])) {
  //capture post varibles, sanitizing of course.
  $dir = "";
  $dir = $_POST['input'];

    $dh  = opendir($dir);
    while (false !== ($filename = readdir($dh))) {
      $files[] = $filename;
    }
//now, do stuf with files

    sort($files);
    print_r($files);
  }

?>

这是输出:

Array
(
[0] => .
[1] => ..
[2] => bar.php
[3] => foo.txt
[4] => somedir
)

希望这会有所帮助。