Working with Drives and Folders
With the FileSystemObject (FSO) object model, you can work with drives
and folders programmatically just as you can in the Windows Explorer
interactively. You can copy and move folders, get information about drives and
folders, and so forth.
Getting Information About Drives
The Drive object allows you to gain information about the various
drives attached to a system, either physically or over a network. Its properties
allow you to obtain information about:
- The total size of the drive in bytes (TotalSize property)
- How much space is available on the drive in bytes (AvailableSpace or
FreeSpace properties)
- What letter is assigned to the drive (DriveLetter property)
- What type of drive it is, such as removable, fixed, network, CD-ROM, or RAM
disk (DriveType property)
- The drive's serial number (SerialNumber property)
- The type of file system the drive uses, such as FAT, FAT32, NTFS, and so
forth (FileSystem property)
- Whether a drive is available for use (IsReady property)
- The name of the share and/or volume (ShareName and VolumeName
properties)
- The path or root folder of the drive (Path and RootFolder
properties)
View the sample code to see how
these properties are used in FileSystemObject.
Example Usage of the Drive Object
Use the Drive object to gather information about a drive. You won't
see a reference to an actual Drive object in the following code; instead,
use the GetDrive method to get a reference to an existing Drive
object (in this case, drv).
The following example demonstrates how to use the Drive object in
VBScript: Sub ShowDriveInfo(drvPath)
Dim fso, drv, s
Set fso = CreateObject("Scripting.FileSystemObject")
Set drv = fso.GetDrive(fso.GetDriveName(drvPath))
s = "Drive " & UCase(drvPath) & " - "
s = s & drv.VolumeName & "<br>"
s = s & "Total Space: " & FormatNumber(drv.TotalSize / 1024, 0)
s = s & " Kb" & "<br>"
s = s & "Free Space: " & FormatNumber(drv.FreeSpace / 1024, 0)
s = s & " Kb" & "<br>"
Response.Write s
End Sub
The following code illustrates the same functionality in JScript: function ShowDriveInfo1(drvPath)
{
var fso, drv, s ="";
fso = new ActiveXObject("Scripting.FileSystemObject");
drv = fso.GetDrive(fso.GetDriveName(drvPath));
s += "Drive " + drvPath.toUpperCase()+ " - ";
s += drv.VolumeName + "<br>";
s += "Total Space: " + drv.TotalSize / 1024;
s += " Kb" + "<br>";
s += "Free Space: " + drv.FreeSpace / 1024;
s += " Kb" + "<br>";
Response.Write(s);
}
Working with Folders
Common folder tasks and the methods for performing them are described in the
following table.
| Task | Method | | Create a folder. | FileSystemObject.CreateFolder | | Delete a folder. | Folder.Delete or FileSystemObject.DeleteFolder | | Move a folder. | Folder.Move or FileSystemObject.MoveFolder | | Copy a folder. | Folder.Copy or FileSystemObject.CopyFolder | | Retrieve the name of a folder. | Folder.Name | | Find out if a folder exists on a drive. | FileSystemObject.FolderExists | | Get an instance of an existing Folder object. | FileSystemObject.GetFolder | | Find out the name of a folder's parent folder. | FileSystemObject.GetParentFolderName | | Find out the path of system folders. | FileSystemObject.GetSpecialFolder |
View the sample code to see how many
of these methods and properties are used in FileSystemObject.
The following example demonstrates how to use the Folder and
FileSystemObject objects to manipulate folders and gain information about
them in VBScript: Sub ShowFolderInfo()
Dim fso, fldr, s
' Get instance of FileSystemObject.
Set fso = CreateObject("Scripting.FileSystemObject")
' Get Drive object.
Set fldr = fso.GetFolder("c:")
' Print parent folder name.
Response.Write "Parent folder name is: " & fldr & "<br>"
' Print drive name.
Response.Write "Contained on drive " & fldr.Drive & "<br>"
' Print root file name.
If fldr.IsRootFolder = True Then
Response.Write "This is the root folder." & ""<br>"<br>"
Else
Response.Write "This folder isn't a root folder." & "<br><br>"
End If
' Create a new folder with the FileSystemObject object.
fso.CreateFolder ("C:\Bogus")
Response.Write "Created folder C:\Bogus" & "<br>"
' Print the base name of the folder.
Response.Write "Basename = " & fso.GetBaseName("c:\bogus") & "<br>"
' Delete the newly created folder.
fso.DeleteFolder ("C:\Bogus")
Response.Write "Deleted folder C:\Bogus" & "<br>"
End Sub
This example shows how to use the Folder and FileSystemObject
objects in JScript: function ShowFolderInfo()
{
var fso, fldr, s = "";
// Get instance of FileSystemObject.
fso = new ActiveXObject("Scripting.FileSystemObject");
// Get Drive object.
fldr = fso.GetFolder("c:");
// Print parent folder name.
Response.Write("Parent folder name is: " + fldr + "<br>");
// Print drive name.
Response.Write("Contained on drive " + fldr.Drive + "<br>");
// Print root file name.
if (fldr.IsRootFolder)
Response.Write("This is the root folder.");
else
Response.Write("This folder isn't a root folder.");
Response.Write("<br><br>");
// Create a new folder with the FileSystemObject object.
fso.CreateFolder ("C:\\Bogus");
Response.Write("Created folder C:\\Bogus" + "<br>");
// Print the base name of the folder.
Response.Write("Basename = " + fso.GetBaseName("c:\\bogus") + "<br>");
// Delete the newly created folder.
fso.DeleteFolder ("C:\\Bogus");
Response.Write("Deleted folder C:\\Bogus" + "<br>");
}
|