【问题标题】:Listing files from multiple paths列出来自多个路径的文件
【发布时间】:2012-11-11 16:42:26
【问题描述】:

我正在编写一个需要列出来自多个路径的文件的小应用程序。

我试图做这样的事情,但它只向我展示了第一条路径。

有什么线索吗?

代码如下:

var wsh = new ActiveXObject("WScript.Shell");
var FSO = new ActiveXObject("Scripting.FileSystemObject");

function window.onload() {
    var s = "";
    var paths = FSO.OpenTextFile("bin\\paths.txt")

    while (!paths.AtEndOfStream) {
    content = paths.ReadLine();
    s += content;
    loadMediaFolders(s);
    }
    stat.innerHTML= s;
}

function loadMediaFolders(wathPath) {
var str = "";
    var folder = FSO.GetFolder(wathPath);
        var mainFolders = new Enumerator(folder.SubFolders);
            for (; !mainFolders.atEnd(); mainFolders.moveNext()) {

                var FolderPath = mainFolders.item().Path;

                var files = FSO.GetFolder(FolderPath);
                var sbFiles = new Enumerator(files.Files);

                for (; !sbFiles.atEnd(); sbFiles.moveNext()) {
                var FilleName = sbFiles.item().Name;

                str += FilleName;
                }
            }
    stat.innerHTML= str;
}

这就是路径在文件中的存储方式:

F:\\stuff\\Media\\Movies\\
D:\\Media\\Movies\\

【问题讨论】:

  • 不需要在文本文件中使用双斜杠作为路径分隔符——这种转义只适用于代码。

标签: javascript fso


【解决方案1】:

在读取文件夹路径的循环中,您在将路径传递给loadMediaFolders(...) 之前将它们连接起来。第一个将起作用,因为s 将是F:\stuff\Media\Movies\,第二个s 将是F:\stuff\Media\Movies\D:\Media\Movies\

试试这样的

while (!paths.AtEndOfStream) {
    content = paths.ReadLine();
    loadMediaFolders(content);
}

loadMediaFolders(...) 已经将结果写入stat.innerHtml,因此也可以删除该行。请记住,当您真的想在loadMediaFolders(...) 中连接结果时,您可能会覆盖所有stat.innerHtml

【讨论】:

  • 是 - stat.innerHTML= str; 正在覆盖结果;试试stat.innerHTML+= str;
  • 这就像一个魅力:) 有没有办法在一个表格行中输出结果?我试图这样做,但它刹车到拖曳表行:(
  • 在for循环外:var Stable = "";在循环内: str += "";在 for 循环之外: var Etable = "
    "+FilleName+"
    "; stat.innerHTML += 稳定+str+Etable;
  • 仍然无法工作 :( 给了我那些拖曳的行 :( 任何想法如何解决这个问题?
  • @ABA3DD:如果我了解您要做什么,则需要进行一些重构。您可能需要将所有文件/文件夹名称保存在数组中,然后在收集完所有数据后写入输出。这听起来像是一个基于新代码的单独的堆栈溢出问题,但对于 cmets 来说有点太复杂了。我相信这个问题已经得到解答,如果你同意,如果你接受这个答案是正确的,那就太好了 =)
猜你喜欢
  • 2020-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-17
相关资源
最近更新 更多