O'Reilly logo

Windows Me Annoyances by David A. Karp

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Manipulating Files from Scripts

One of the myths surrounding the Windows Script Host, and VBScript in particular, is that there’s no provision for accessing the filesystem (copying, deleting, and writing to files). This assumption is based on the fact that VBScript, when used in web pages, is not permitted to access the filesystem for security reasons.

The following routines rely on the FileSystemObject object, providing most necessary file operations. The names I’ve chosen for these functions and subroutines are based on what they act upon and what they’re used for; for example, the FolderCopy subroutine is used to copy a folder, and the FileCopy subroutine is used to copy a file.

The following two functions return properties of drives—whether a specific drive letter exists and how much free space a specified drive has, respectively:

Function DriveExists(DriveLetter)
  Set FileObject = CreateObject("Scripting.FileSystemObject")
  DriveExists = FileObject.DriveExists(DriveLetter)
End Function
  
Function DriveFreeSpace(DriveLetter)
  If Left(DriveLetter,1) <> ":" Then DriveLetter = DriveLetter & ":"
  Set FileObject = CreateObject("Scripting.FileSystemObject")
  Set DriveHandle = _ 
                FileObject.GetDrive(FileObject.GetDriveName(DriveLetter))
  DriveFreeSpace = DriveHandle.FreeSpace
End Function

These next seven subroutines and functions are used to manipulate folders. The functions are used to retrieve information about a folder, and the subroutines are used to perform actions on a folder. The ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required