一共分4个文件 分别是主程序 main.html 左边窗口:mainleft.html 右边窗口:mainright.html 还有相应的文件属性窗口:mainproperty.html
main.html
<HTML>
<head>
<title>Give this SoftWare To my Lovest GF LuLU</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Content-Language" content="en">
<meta name="keywords" content="JF Asset Management; JPMorgan;">
<meta name="description" content="JF Online">
<!-- <frameset rows="195,*">-->
<frameset cols="180,*,400">
<!-- Start CodeMerge001 on April 9,2007 -->
<!-- <frame name="" src="top.jsp" marginwidth="0" marginheight="0" scrolling="no" frameborder="no">
<frame name="" src="/mjfUsr/main/content.htm" marginwidth="0" marginheight="0" scrolling="auto" frameborder="no">
-->
<frame name="frame1" src="mainleft.html" marginwidth="0" marginheight="0" scrolling="auto" frameborder="1">
<frame name="frame2" src="mainright.html" marginwidth="0" marginheight="0" scrolling="auto" frameborder="1">
<frame name="frame3" src="mainproperty.html" marginwidth="0" marginheight="0" scrolling="auto" frameborder="1">
<!-- END CodeMerge001 on April 9,2007 -->
</frameset>
</HTML>
mainleft.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title> File System </title>
</head>
<script language ="javascript">
function changeDrive(obj){
ShowFolderList(obj.innerHTML.substr(0,2));
}
function ShowDriveList()
{
var fso, s, n, e, x;
fso = new ActiveXObject("Scripting.FileSystemObject");
e = new Enumerator(fso.Drives);
s = "";
for (; !e.atEnd(); e.moveNext())
{
x = e.item();
s = s +"<div ondblclick='return changeDrive(this);'> "+ x.DriveLetter;
s += ":";
if (x.DriveType == 3)
n = x.ShareName;
else if (x.IsReady)
n = x.VolumeName+"(free:"+(x.FreeSpace/(1024*1024*1024)).toString().substr(0,4)+"GB)";
else
n = "[Drive not ready]";
s += n+"</div>";
}
document.getElementById('div').innerHTML = s ;
}
function ShowFolderList(obj)
{
var fso, f, fc, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFolder(obj);
fc = new Enumerator(f.SubFolders);
s = "";
for (; !fc.atEnd(); fc.moveNext())
{
s += "<font color='green'><div ondblclick='return checkFileOrFolder(this);'>"+fc.item()+"</div></font>";
s += "<br>";
}
fc = new Enumerator(f.Files);
for (; !fc.atEnd(); fc.moveNext())
{
s += "<font color='blue'><div ondblclick='return checkFileOrFolder(this);'>"+fc.item()+"</div></font>";
s += "<br>";
}
parent.frames.frame2.div.innerHTML = s;
}
function checkFileOrFolder(obj){
}
</script>
<body onload = 'return ShowDriveList();'>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<div id ='div'></div>
</body>
</html>
mainright.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 1</title>
</head>
<script language ="javascript" >
var backArray = new Array();
var fso = new ActiveXObject("Scripting.FileSystemObject");
var check = 0 ;
var driverC = 0
function ShowFolderList(obj)
{
var f, fc, s;
f = fso.GetFolder(obj);
fc = new Enumerator(f.SubFolders);
s = "";
for (; !fc.atEnd(); fc.moveNext())
{
s += "<font color='green'><div ondblclick='return checkFileOrFolder(this);'>"+fc.item()+"</div></font>";
s += "<br>";
}
fc = new Enumerator(f.Files);
for (; !fc.atEnd(); fc.moveNext())
{
s += "<font color='blue'><div ondblclick='return checkFileOrFolder(this);'>"+fc.item()+"</div></font>";
s += "<br>";
}
parent.frames.frame2.div.innerHTML = s;
}
function checkFileOrFolder(obj){
check = 1;
if(driverC ==0){
backArray.push(obj.innerHTML.substr(0,2));
driverC = 1;
}
if (fso.FileExists(obj.innerHTML)) {
parent.frames.frame3.div.innerHTML = getProp(obj.innerHTML);
}
if (fso.FolderExists(obj.innerHTML)) {
//alert(obj.innerHTML);
backArray.push(obj.innerHTML);
ShowFolderList(obj.innerHTML);
}
}
function back() {
if(check == 1)
{ backArray.pop(); check = 0;}
var ao = backArray.pop();
//alert(backArray.length+':'+ao)
//if(ao !=undefined)
ShowFolderList(ao);
}
function getProp(obj) {
if(!fso.FileExists(obj))
return ' ';
var f = fso.GetFile(obj);
var str ='文件名字: '+obj+'<br/>';
switch(f.attributes){
case 0: str += '文件属性: '+'普通文件。 不设置属性。'+'<br/>';break;
case 1: str += '文件属性: '+'只读文件。 属性为读/写。'+'<br/>'; break;
case 2: str += '文件属性: '+'隐藏文件。 属性为读/写。'+'<br/>'; break;
case 4: str += '文件属性: '+'系统文件。 属性为读/写。'+'<br/>'; break;
case 8: str += '文件属性: '+'磁盘驱动器卷标。 属性为只读。'+'<br/>'; break;
case 16: str += '文件属性: '+'文件夹或目录。 属性为只读。'+'<br/>'; break;
case 32: str += '文件属性: '+'文件在上次备份后已经修改。 属性为读/写。'+'<br/>'; break;
case 64: str += '文件属性: '+'链接或者快捷方式。 属性为只读。'+'<br/>'; break;
case 128:str += '文件属性: '+'压缩文件。 属性为只读。'+'<br/>';
default:break;
}
str += '创建时间: ' + new Date(f.DateCreated).toLocaleString()+'<br/>';
str += '最近一次访问时间: ' + new Date(f.DateLastAccessed).toLocaleString()+'<br/>';
str += '最近一次修改时间: ' + new Date(f.DateLastModified).toLocaleString()+'<br/>';
str += '简名: ' + f.ShortName +'<br/>';
str += '占用空间 : ' + f.size/1024 +'KB'+'<br/><br/><br/><br/><br/><br/>';
str+="<input type='button' value='打开' id='"+obj+"' onclick='return opendoc(this);'/>"
str+="<input type='button' value='删除' id='"+obj+"' onclick='return deletedoc(this);'/>"
str+="<input type='button' value='另存为' id='"+obj+"' onclick='return savedoc(this);'/>"
return str;
}
</script>
<body>
<br/>
<br/>
<input type ="button" value ="back" onclick="return back();"/>
<br/>
<br/>
<br/>
<div id ='div'> </div>
<br/>
<br/>
<br/>
</body>
</html>
mainproperty.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 1</title>
</head>
<script language="javascript">
var wsh = new ActiveXObject('WScript.Shell');
var fso= new ActiveXObject("Scripting.FileSystemObject");
function opendoc(obj){
if(wsh){
wsh.Run(obj.id);
}
}
function deletedoc(obj){
var us = window.confirm('确定要删除吗?');
if(us ==1) {
var f = fso.GetFile(obj.id);
f.Delete();
parent.frames.frame2.window.location.reload();
}
else return;
}
function savedoc(obj){
alert('have not add this function please wait'obj.id);
}
</script>
<body>
<br/>
<br/>
<br/>
<br/>
<div id ='div'></div>
</body>
</html>
当然这个非常简单 还有很多没有完善 比如文件转移 还有后退功能