列出多个路径中的文件

时间:2012-11-11 16:42:26

标签: javascript fso

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

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

任何线索为什么会这样?

以下是代码:

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\\

1 个答案:

答案 0 :(得分: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,因此该行也可以删除。请记住,当您真正想要在stat.innerHtml中连接结果时,您可能会覆盖所有loadMediaFolders(...)