登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

忆风的博客

http://www.cnblogs.com/dhjdhja

 
 
 

日志

 
 
 
 

javascript获得客户机目录  

2009-09-23 15:28:41|  分类: javascript |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

  突然想写这个东西~~~~。

  在javascript中使用FileSystemObject获得客户机上的目录消息。当然这需要用户同意才行。在运行时会弹出一个确认消息框,用户同意后才运行。

  不说了直接上例子:

<div>
<div id="div_folders"></div>
<div id="div_files"></div>
</div>
<style>
#div_folders
{
border:1px solid #0000FF;
width:400px;
float:left;
}
#div_files
{
border:1px solid #00FF00;
float:left;
}
.folderLink
{
cursor:pointer;
border-bottom:1px solid #0033CC;
color:#0000FF;
}
</style>
<script>

//显示folder目录中的信息,如果folder是个不存在的目录显示我的电脑中的信息
function disFolder(folder)
{
 var objFSO = new ActiveXObject("Scripting.FileSystemObject");
 
 var div_folders=document.getElementById("div_folders");
 div_folders.innerHTML="";
 //获得当前目录的父目录
 var parentFolder=folder.substring(0,folder.lastIndexOf("\\"));
 if(objFSO.FolderExists(parentFolder))
 {
  //添加父目录链接
  div_folders.appendChild(createFolderLink("..",parentFolder));
  //添加子目录链接
  var objRoot=objFSO.GetFolder(folder);
  var colAllFolders = new Enumerator(objRoot.SubFolders);
  for(;!colAllFolders.atEnd();colAllFolders.moveNext())
  {
   var objFolder1 = colAllFolders.item();
   div_folders.appendChild(createFolderLink(objFolder1.Name,objFolder1.Path));
  }
 }
 else
 {
  var colDrives = new Enumerator(objFSO.Drives);
  for (;!colDrives.atEnd(); colDrives.moveNext())
  {
    objDrive = colDrives.item();
    div_folders.appendChild(createFolderLink(objDrive.DriveLetter+":\\",objDrive.DriveLetter+":\\"));
  }
  return;
 }
 //显示文件
 var colFiles = new Enumerator(objRoot.Files);
 var div_files=document.getElementById("div_files");
 div_files.innerHTML="<label style=color:#cccccc>"+objRoot.Path+"</label>";
 for (; !colFiles.atEnd(); colFiles.moveNext())
 {
   objFile = colFiles.item()
   div_files.appendChild(createFileLink(objFile.Name,objFile.Path));
 }
}
//建立文件夹链接
function createFolderLink(name,path)
{
 var div_folder=document.createElement("li");
 div_folder.innerHTML=name;
 div_folder.path=path;
 div_folder.className="folderLink";
 div_folder.attachEvent("onclick", div_onclick);
 return div_folder;
}
//文件链接点击事件
function div_onclick()
{
 var div_folder=window.event.srcElement;
 disFolder(div_folder.path);
}
//建立文件链接
function createFileLink(name,path)
{
 var div_file=document.createElement("div");
 div_file.innerHTML=name;
 div_file.path=path;
 return div_file;
}

disFolder("忆风");
</script>

例中的两个div,一个显示文件夹,一个显示文件。

 

下面是对一些关于FileSystemObject的属性和方法的介绍和使用。

FileSystemObject简介及应用:  
  方法或者属性   描述    
  BuildPath()    
    生成一个文件路径    
  CopyFile()     复制文件    
  CopyFolder()   复制目录    
  CreateFolder()     创建新目录    
  CreateTextFile()     生成一个文件    
  DeleteFile()     删除一个文件    
  DeleteFolder()     删除一个目录    
  DriveExists()     检验盘符是否存在    
  Drives   返回盘符的集合    
  FileExists()     检验文件是否存在    
  FolderExists   检验一个目录是否存在    
  GetAbsolutePathName()     取得一个文件的绝对路径    
  GetBaseName()     取得文件名    
  GetDrive()     取得盘符名    
  GetDriveName()     取得盘符名    
  GetExtensionName()     取得文件的后缀    
  GetFile()     生成文件对象    
  GetFileName()     取得文件名    
  GetFolder()     取得目录对象    
  GetParentFolderName   取得文件或目录的父目录名    
  GetSpecialFolder()     取得特殊的目录名    
  GetTempName()     生成一个临时文件对象    
  MoveFile()     移动文件    
  MoveFolder()     移动目录    
  OpenTextFile()     打开一个文件流    

 

//驱动盘的一些属性
var objFSO = new ActiveXObject("Scripting.FileSystemObject");
var colDrives = new Enumerator(objFSO.Drives);
for (;!colDrives.atEnd(); colDrives.moveNext()) {
  objDrive = colDrives.item();
  document.write('DriveLetter: ' + objDrive.DriveLetter + '<BR>');
  document.write('DriveType: ' + objDrive.DriveType + '<BR>');

  if (objDrive.DriveType == 3)
    if (objDrive.IsReady)
      document.write('Remote drive with ShareName: ' +
                     objDrive.ShareName + '<BR>')
    else
      document.write('Remote drive - IsReady property returned False<BR><BR>');
    else if (objDrive.IsReady) {
      document.write('Local drive with VolumeName: ' +
                    objDrive.VolumeName + '<BR>');
    document.write('FileSystem: ' + objDrive.FileSystem + '<BR>');
    document.write('SerialNumber: ' + objDrive.SerialNumber + '<BR>');
    document.write('AvailableSpace: ' + objDrive.AvailableSpace + ' bytes<BR>');
    document.write('FreeSpace: ' + objDrive.FreeSpace + ' bytes<BR>');
    document.write('TotalSize: ' + objDrive.TotalSize + ' bytes<P>');
}
}

//文件的属性
var colFiles = new Enumerator(objRoot.Files);
 
 for (; !colFiles.atEnd(); colFiles.moveNext()) {
   objFile = colFiles.item()
   document.write(objFile.Path+'<br />');
   /*document.write('Name:' + objFile.Name + '   <br />');
   document.write('ShortName: ' + objFile.ShortName + '   ');
   document.write('Size: ' + objFile.Size + ' bytes    ');
   document.write('Type: ' + objFile.Type + '<BR>');
   document.write('Path: ' + objFile.Path + '   ');
   document.write('ShortPath: ' + objFile.ShortPath + '<BR>');
   document.write('Created: ' + objFile.DateCreated + '   ');
   document.write('Accessed: ' + objFile.DateLastAccessed + '   ');
   document.write('Modified: ' + objFile.DateLastModified + '<P>');
   }

  评论这张
 
阅读(386)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018