热门文章
 
fso操作文件 实例函数
利用FSO取得BMP,JPG
FileSystemObje
fso使用:drive 读取
fso:folder 文件系
fso:file 文件对象
scripting.Text
ASP实现结构化列举并查看某
Adodb.Stream
ASP 批量文件改名
 推荐文章
 
asp无组件读取图片文件信息
限制(禁用)FSO组件的方法
fso使用例子:创建文件夹
fso:file 文件对象
fso应用中的几个小函数
ASP FSO相关的一些例子
fso的一些特殊功能
FSO读取网站系统使用空间的
使用FSO修改文件夹的名称
fso复制文件夹所有内容和删
FSO操作文件系统代码
稻香老农的无组件上传类(完整
一个基于Jscript和fs
无惧 无组件上传完整代码
asp静态模版技术之标签参数
无组件上传文件被杀毒软件误报
 
你现在的位置:您现在的位置是: 中国ASP>>ASP教程>>fso组件
fso使用:drive 读取驱动器信息

使用驱动器
      下面是使用FileSystemObject对象的简单例子,它使用DriveExists方法得到现有的驱动器字母的列表:
      ‘ In VBscript
      Set objFSO = Server.CreateObject(“scripting.FileSystemObject”)
      For intCode = 65 To 90                ‘ANSI codes for ‘A’ to ‘Z’
             strLetter = Chr(intCode)
             If objFSO.DriveExists(strLetter) Then
                    Response.Write “Found drive “ & strLetter & “:<BR>”
             End If
      Next
      或用Jscript:
      // In Jscript
      var objFSO = Server.CreateObject(‘scripting.FileSystemObject’);
      for (var intCode = 65; intCode <= 90; intCode++) {    //ANSI codes for ‘A’ to ‘Z’
             strLetter = String.formCharCode(intCode);
             If (objFSO.DriveExists(strLetter))
                    Response.Write (‘Found drive ‘ + strLetter + “:<BR>”);
      }

1.  Drive对象
正如已经看到的,FileSystemObject对象包含一个属性——Drives,它返回一个包括本地计算机上所有可用驱动器的集合。
Drives集合里的每个条目是一个Drive对象。

AvailableSpave
考虑了帐户定额和/或其他限制,返回驱动器上对于该用户可用的空间的大小

DriveLetter
返回驱动器的字母

DriveType
返回驱动器的类型。返回值可以是Unknown(0)、Removeable(1)、Fixed(2)、Network(3)、CDRom(4)和RamDisk(5)。然而需要注意的是当前版本的scrrun.dll不支持预定义常数Network,必须使用十进制3来代替

FileSystem
返回驱动器文件系统的类型。返回值包括“FAT”、“NTFS”和“CDFS”

FreeSpace
返回驱动器上可用剩余空间的总量

IsReady
返回一个布尔值表明驱动器是否已准备好

Path
返回一个由驱动器字母和冒号组成的驱动器路径,即“C:”

RootFolder
返回代表的驱动器根目录文件夹的Folder对象

SerialNumber
返回一个用于识别磁盘卷的十进制的序列号

ShareName
如果是一个网络驱动器,返回该驱动器的网络共享名

TotalSize
返回驱动器的总容量(以字节为单位)

VolumeName
设定或返回本地驱动器卷名

      因此,通过使用Drives集合里的Drive对象,可以在服务器上产生一个驱动器列表,与通过检查每个可能的驱动器字母来判别驱动器是否存在的方法相比,效率更高。我们也可以得到关于该驱动器的信息。在VBscript里,代码如下:
"" In VBscript:
"" create a FileSystemObject instance
Set objFSO = Server.CreateObject("scripting.FileSystemObject")
"" create a Drives collection
Set colDrives = objFSO.Drives
"" iterate through the Drives collection
For Each objDrive in colDrives

 Response.Write "DriveLetter: <B>" & objDrive.DriveLetter & "</B>   "
 Response.Write "DriveType: <B>" & objDrive.DriveType
 Select Case objDrive.DriveType
   Case 0: Response.Write " - (Unknown)"
   Case 1: Response.Write " - (Removable)"
   Case 2: Response.Write " - (Fixed)"
   Case 3: Response.Write " - (Network)"
   Case 4: Response.Write " - (CDRom)"
   Case 5: Response.Write " - (RamDisk)"
 End Select
 Response.Write "</B>   "

If objDrive.DriveType = 3 Then
   If objDrive.IsReady Then
     Response.Write "Remote drive with ShareName: <B>" & objDrive.ShareName & "</B>"
   Else
Response.Write "Remote drive - <B>IsReady</B> property returned_
<B>False</B><BR>"
   End If
 Else If objDrive.IsReady then
   Response.Write "FileSystem: <B>" & objDrive.FileSystem & "</B>   "
   Response.Write "SerialNumber: <B>" & objDrive.SerialNumber & "</B><BR>"
Response.Write "Local drive with VolumeName: <B>" & _
objDrive.VolumeName & "</B><BR>"
Response.Write "AvailableSpace: <B>" & FormatNumber( _
objDrive.AvailableSpace / 1024, 0) & "</B> KB   "
Response.Write "FreeSpace: <B>" & FormatNumber( _
objDrive.FreeSpace / 1024, 0) & "</B> KB   "
Response.Write "TotalSize: <B>" & FormatNumber(_
objDrive.TotalSize / 1024, 0) & "</B> KB"
 End if  
 Response.Write "<P>"
 End if
Next
      注意,不能用预定义常数Network比较驱动器的DriveType属性,因为(至少在scrrun.dll的当前版本中)在类型库中省略了Network常数,因此不再作为公用的常数使用。
在Jscript中,该程序是:
// In Jscript:
// create a FileSystemObject instance
var objFSO = Server.CreateObject(""scripting.FileSystemObject"");
// create a Drives collection
var colDrives = new Enumerator(objFSO.Drives);

for (; !colDrives.atEnd(); colDrives.moveNext()) {
 objDrive = colDrives.item();
 Response.Write(""DriveLetter: "" + objDrive.DriveLetter + ""<BR>"");
 Response.Write(""DriveType: "" + objDrive.DriveType + ""<BR>"");

 if (objDrive.DriveType == 3)
   if (objDrive.IsReady)
     Response.Write(""Remote drive with ShareName: "" +
                    objDrive.ShareName + ""<BR>"")
   else
     Response.Write(""Remote drive - IsReady property returned False<BR><BR>"");
   else if (objDrive.IsReady) {
     Response.Write(""Local drive with VolumeName: "" +
                   objDrive.VolumeName + ""<BR>"");
   Response.Write(""FileSystem: "" + objDrive.FileSystem + ""<BR>"");
   Response.Write(""SerialNumber: "" + objDrive.SerialNumber + ""<BR>"");
   Response.Write(""AvailableSpace: "" + objDrive.AvailableSpace + "" bytes<BR>"");
   Response.Write(""FreeSpace: "" + objDrive.FreeSpace + "" bytes<BR>"");
   Response.Write(""TotalSize: "" + objDrive.TotalSize + "" bytes<P>"");
}
}
      在系统上运行这段程序以前有一点要注意。如果在A驱动器里没有磁盘,或CD-ROM驱动器里没有光盘,将得到一个错误提示:“Disk Not Ready”。除了DriveLetter属性和DriveType属性外,在使用其他属性和方法前,通过检查每个驱动器的IsReady属性,可以保护该页面。

一般在适当的权限配置下,在虚拟主机上很难读取服务器的磁盘信息。


相关信息:

fso操作文件 实例函数
利用FSO取得BMP,JPG,PNG,GIF文件信息
FileSystemObject对象成员概要
fso使用:drive 读取驱动器信息
fso:folder 文件系统
fso:file 文件对象
scripting.TextStream对象-fso读写文本
ASP实现结构化列举并查看某路径下所有文件

 

中国ASP技术 ASP.ORG.CN 版权所有 2004-2008