我想使用浏览目录树收集的信息生成本地html页面内容,具体取决于文件的文件名。我没有javascript的经验,我认为这是最容易完成任务的。该页面必须正确使用IE7。现在,让我举一个我想做的事情的例子。
html文件位于本地目录中,例如HTML_DIR
。有几个子目录,比如HTML_DIR\A
,HTML_DIR\B
,HTML_DIR\C
包含名为XXX_001-999.xml
,YYY_001-999.xml
,ZZZ_001-999.xml
的xml文件,而每种类型都有可以在每个子目录中找到。因此,示例性场景将是:
HTML_DIR
/A
- XXX_001.xml
- XXX_002.xml
- XXX_003.xml
- YYY_001.xml
- YYY_002.xml
- YYY_003.xml
/B
- ZZZ_001.xml
- ZZZ_002.xml
- ZZZ_003.xml
- ZZZ_111.xml
- XXX_111.xml
/C
- YYY_001.xml
- YYY_002.xml
- YYY_003.xml
- ZZZ_111.xml
- XXX_111.xml
现在,我想在html页面上为每个子目录动态生成表,行根据包含的文件,所以页面看起来像:
Table A
XXX YYY ZZZ Link
001 001 http://localhost:8080/001.html
002 002 http://localhost:8080/002.html
003 003 http://localhost:8080/003.html
Table B
XXX YYY ZZZ Link
001 http://localhost:8080/001.html
002 http://localhost:8080/002.html
003 http://localhost:8080/003.html
111 111 http://localhost:8080/111.html
Table C
XXX YYY ZZZ Link
001 http://localhost:8080/001.html
002 http://localhost:8080/002.html
003 http://localhost:8080/003.html
111 111 http://localhost:8080/111.html
可行吗?
答案 0 :(得分:1)
使用javascript(在客户端上执行)无法读取服务器的文件系统。 您必须使用服务器端语言(如php或java)来执行此操作。
答案 1 :(得分:0)
这是一个用于读取给定文件夹中所有文件和文件夹的简单代码段,但我不确定您是否可以使用它读取虚拟文件夹。
window.onload = function () {
var topRoot = 'YOUR_TOP_FOLDER_PATH', // Like 'C:/xmls'
fso = new ActiveXObject('Scripting.FileSystemObject'),
getFolderTree = function (path) {
var allfiles = [],
getTree = function (subfolders) {
var subs, files;
while (!subfolders.atEnd()) {
subs = subfolders.item().SubFolders;
if (subs) {
getTree(new Enumerator(subs));
}
files = new Enumerator(subfolders.item().files);
while (!files.atEnd()) {
// Add a file filter here
allfiles.push(new String(files.item()));
files.moveNext();
}
subfolders.moveNext();
}
};
getTree(new Enumerator(fso.GetFolder(path).SubFolders));
return allfiles;
},
tree = getFolderTree(topRoot),
dir = document.getElementById('dir'),
n = 0;
tree.sort();
// This is just an example print
for (; n < tree.length; n++) {
dir.innerHTML += tree[n] + '<br>';
}
return;
}
只需将此功能放入您自己的架构中,然后添加topRoot
,文件过滤器和打印版面。
请注意,topRoot
应该是一个子文件夹(即不要使用topRoot = 'C:';
),阅读系统中的所有文件会花费很多时间。