InstallShield 2012 LE版本中,
1. 自己定义了一个环境变量,叫做mypath,
2. 在custom action中,添加一个action,使用下面的代码来删除子文件夹和文件。
removeNew
Function removeNew()
Set WshShell = CreateObject("WScript.Shell")
Dim strFolder, intAnswer
strFolder = WshShell.ExpandEnvironmentStrings("%mypath%")
strFolder = Left(strFolder, Len(strFolder) - 1)
'strFolder = "C:\NewTemp"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolders = objFSO.GetFolder(strFolder)
MsgBox "The folder " & fldr & " exists so now to delete all folders inside.", vbInformation
intAnswer = Msgbox("Delete all CATS folder and files?", vbYesNo, "Delete Files")
If intAnswer = vbNo Then
Exit Function
End If
recurse objFolders
'delete the folder itself
If objFSO.FolderExists(strFolder) Then
objFSO.DeleteFolder(strFolder)
End If
Set objFSO = Nothing
Set objFolders = Nothing
Set WshShell = Nothing
End Function
sub recurse(byref objFolders)
dim subfolders,files,folder,file
set subfolders = objFolders.subfolders
set files = objFolders.files
for each file in files
on error resume next
name = file.name
file.Delete True
If Err Then
MsgBox "Error deleting:" & Name & " - " & Err.Description, vbInformation
Else
MsgBox "Deleted:" & Name, vbInformation
End If
On Error GoTo 0
next
for each folder in subfolders
recurse folder
If UBound(Split (folder.path, "\")) > 0 Then
name = folder.name
folder.Delete True
If Err Then
MsgBox "Error deleting:" & Name & " - " & Err.Description, vbInformation
Else
MsgBox "Deleted:" & Name, vbInformation
End If
On Error GoTo 0
End If
next
set subfolders = nothing
set files = nothing
end Sub