Submitted By: Anoop Puthan Veetil

Deletes all the files with a specified file extension from a folder and its subfolders.

Visual Basic
Edit|Remove
Dim fpath
Dim fname
Dim selext:selext = ""

selext = InputBox("Please enter the file-extension:","File extension...")

If StrComp(selext,"") = 0 Then
            WScript.Quit 0
End If

Const WINDOW_HANDLE = 0    
Const NO_OPTIONS = 0
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(WINDOW_HANDLE, "Select a folder:", NO_OPTIONS)     
If objFolder Is Nothing Then
             WScript.Quit 0
End if
Set objFolderItem = objFolder.Self
objPath = objFolderItem.Path
fpath = objPath
ret_val = MsgBox("Delete all files with extension '" & selext & "' in " & fpath & _
    " ???", vbYesNo+vbQuestion, "Query...")
If ret_val = vbNo Then
            WScript.Quit 0
End if
 
'recurse through the available folder-list and delete all excel files in them
Set FSO = CreateObject("Scripting.FileSystemObject")
Dim counter : counter = 0
call ShowSubfolders(FSO.GetFolder(fpath))
If CInt(counter) = 0 Then
    WScript.Echo vbCrLf & "No files exist with the extension '" & selext & "' in the directory: " & fpath
Else
    WScript.Echo vbCrLf & counter & " File(s) deleted."

End If

Sub ShowSubFolders(Folder)
            Set folder = FSO.GetFolder(Folder)
            Set files = folder.Files
            For each folderIdx In files
                        if InStr(folderIdx.Name, ".") <> 0 Then
                        fext = Right(folderIdx.Name, Len(folderIdx.Name) - InStrRev(folderIdx.Name, "."))
            End If
                        If StrComp(fext,selext) = 0 Then
                                    WScript.Echo "Deleting : " & Folder & "\" & folderIdx.Name                       
                                    FSO.DeleteFile(Folder & "\" & folderIdx.Name)
                                    counter = counter + 1
                        End If
            Next

    For Each Subfolder in Folder.SubFolders
        ShowSubFolders Subfolder
    Next
End Sub