问题 获取目录中所有文件夹的列表[关闭]


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

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

我很好奇是否有可能得到一个关于所有文件夹名称的列表?

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


11255
2018-03-21 00:37


起源

停下来想一想......如果你可以访问任何服务器并通过javascript获取目录详细信息......服务器有多安全?你不能这样做 - charlietfl


答案:


他的问题有一点意义 (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在客户端计算机上运行脚本的潜力。浏览器作者使用两个限制包含此风险。首先,脚本运行在 砂箱 他们只能执行与网络相关的操作, 不是像创建文件这样的通用编程任务。其次,脚本受同一原始策略的约束:来自一个网站的脚本无法访问发送到另一个站点的用户名,密码或cookie等信息。大多数与JavaScript相关的安全漏洞都违反了相同的原始策略或沙箱。

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

我很好奇是否有可能得到关于所有文件夹的列表   名字呢?同 HTML5

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


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


14
2018-03-21 00:53



谢谢你指出不要投票,我只是问是否有可能。我很想使用PHP,但我无法安装任何程序。我尝试使用html5 api,但似乎你必须以编程方式创建目录。问题是我无法知道文件夹中有多少文件夹或歌曲名称。这似乎开始似乎我无法实现这一目标。 - Robert E. McIntosh
@Robert E. McIntosh不要以任何方式使用Browser Api,它们与其他人不兼容,实际上你需要什么? - 7-isnotbad
我需要获取一个目录列表和javascript文件所在的文件名。这是我用cydia调整创建的一个小部件,名为iWidgets。 - Robert E. McIntosh
因此,任何可以在safari或谷歌chrome中工作的东西都可以。 - Robert E. McIntosh
“JavaScript(JS)是一种解释型计算机编程语言” - 事实并非如此。它是编译的。编译步骤不是由代码作者手动执行的。 - Quentin


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

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

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


0
2018-03-21 00:47



它们将是html文件存在的地方。所以我不介意使用ajax或类似的东西,但问题是我只能访问javascript和html。如果这是不可能的,那很好,我想我至少会问。 - Robert E. McIntosh
@ RobertE.McIntosh只使用Javascript是不可能的,你必须添加一些服务器代码(PHP或类似的东西)来列出Music目录的内容并通过AJAX返回给你。
织补。谢谢。我很担心。 - Robert E. McIntosh


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

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


0
2018-03-21 01:03



这是客户端的访问文件,我想访问javascript文件所在的文件。 - Robert E. McIntosh
没有做-1,嘿,他们不是一般的解决方案,从不在这里推荐他们 - 7-isnotbad


正如@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
)

希望这可以帮助。


-2
2018-03-21 01:01



正如我所说,它必须是javascript,jquery或html。我无法安装任何东西,所以我无法使用php。谢谢你。我认为这是不可能的。 - Robert E. McIntosh
HTML5文件API  - 有一些你可能感兴趣的html5善良。 - Todd
我一直在尝试使用它,但它似乎并没有实际查找目录,除非你使用javascript创建它们。 - Robert E. McIntosh