VBScript DeleteFolder Method
last modified April 9, 2025
The DeleteFolder method in VBScript is part of the
FileSystemObject. It permanently removes a specified folder and all
its contents from the filesystem. This method is powerful and should be used with
caution. It doesn't move files to the Recycle Bin but deletes them immediately.
DeleteFolder can handle empty folders and those containing files.
It supports recursive deletion of all subfolders and files. This tutorial covers
DeleteFolder with practical examples to demonstrate its usage and
potential pitfalls.
DeleteFolder Method Overview
The DeleteFolder method takes one required parameter: the folder
path to delete. An optional second parameter controls force deletion of read-only
files. The method is available through the FileSystemObject in
VBScript scripting.
Key features include recursive folder deletion and read-only file handling. It throws errors if the path doesn't exist or is inaccessible. Understanding this method helps create robust folder management scripts. Always verify paths before deletion to prevent data loss.
Basic Folder Deletion
This example demonstrates the simplest use of DeleteFolder to remove
an empty folder. It shows basic error handling to catch common issues. The script
attempts to delete a folder at a specified path.
On Error Resume Next
Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFolder "C:\Temp\OldData"
If Err.Number <> 0 Then
WScript.Echo "Error deleting folder: " & Err.Description
Else
WScript.Echo "Folder deleted successfully"
End If
Set fso = Nothing
The script creates a FileSystemObject and calls
DeleteFolder. Error handling catches issues like missing folders or
permission problems. The folder "C:\Temp\OldData" is permanently deleted if it
exists and is accessible.
Force Deleting Read-Only Folders
This example shows how to force deletion of folders containing read-only files.
The second parameter of DeleteFolder controls this behavior. When
set to True, it overrides read-only attributes.
On Error Resume Next
Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFolder "C:\Temp\ProtectedData", True
If Err.Number <> 0 Then
WScript.Echo "Error deleting folder: " & Err.Description
Else
WScript.Echo "Folder and contents deleted (forced)"
End If
Set fso = Nothing
The script attempts to delete "C:\Temp\ProtectedData" with force enabled. This deletes the folder even if it contains read-only files. Without force, such folders would cause errors. Use this option carefully to avoid unintended data loss.
Deleting Nested Folder Structures
DeleteFolder automatically handles nested folder structures. This
example shows deletion of a folder containing subfolders and files. The method
recursively removes all contents before deleting the parent folder.
On Error Resume Next
Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFolder "C:\Projects\OldWebsite"
If Err.Number <> 0 Then
WScript.Echo "Error deleting folder structure: " & Err.Description
Else
WScript.Echo "Folder structure deleted recursively"
End If
Set fso = Nothing
The script deletes "C:\Projects\OldWebsite" and all its contents. This includes
any subfolders and files within them. No additional code is needed for recursive
deletion as DeleteFolder handles this automatically.
Checking Folder Existence Before Deletion
This example demonstrates good practice by checking if a folder exists before
attempting deletion. The FolderExists method prevents errors when
working with potentially missing folders. It makes scripts more robust.
Set fso = CreateObject("Scripting.FileSystemObject")
folderPath = "C:\Temp\ToDelete"
If fso.FolderExists(folderPath) Then
fso.DeleteFolder folderPath
WScript.Echo "Folder deleted successfully"
Else
WScript.Echo "Folder does not exist"
End If
Set fso = Nothing
The script first verifies "C:\Temp\ToDelete" exists using
FolderExists. Only if found does it proceed with deletion. This
approach prevents errors from attempting to delete non-existent folders. It's a
recommended pattern for folder operations.
Handling Deletion Errors Gracefully
This advanced example shows comprehensive error handling for folder deletion. It catches specific error numbers and provides user-friendly messages. The script attempts to diagnose why deletion failed.
On Error Resume Next
Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFolder "C:\System\ImportantFolder"
Select Case Err.Number
Case 0
WScript.Echo "Folder deleted successfully"
Case 70 ' Permission denied
WScript.Echo "Error: Permission denied. Folder may be in use."
Case 76 ' Path not found
WScript.Echo "Error: Folder path not found"
Case Else
WScript.Echo "Error " & Err.Number & ": " & Err.Description
End Select
Set fso = Nothing
The script attempts to delete "C:\System\ImportantFolder" and handles various error scenarios. Specific error numbers help identify the exact issue. This approach provides better user feedback than generic error messages. It's particularly useful in scripts run by non-technical users.
Source
FileSystemObject Documentation
In this article, we have explored the DeleteFolder method in VBScript,
covering its usage and practical applications. From basic deletion to advanced
error handling, these examples demonstrate robust folder management. With this
knowledge, you can enhance your scripts with reliable folder deletion
capabilities while avoiding common pitfalls.
Author
List all VBScript tutorials.