5.4.2 使用驅動器 下面是使用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>”); } 這兩個程序段的運行結果是相同的,如圖5-9所示:
因此,通過使用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);