我正在编写一个小应用程序,需要列出多个路径中的文件。
我试图做这样的事情,但它只显示了我的第一条道路。
任何线索为什么会这样?
以下是代码:
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\\
答案 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(...)
。