VBScript (.VBS) によるファイル削除

VBScript (.VBS) によるファイル削除
' ファイル削除するためには Scripting.FileSystemObject が必須
Set fs = CreateObject( Scripting.FileSystemObject" )
' ■その1
' 基本
' 第 2 引数に True を指定することで読み取り専用のファイルも削除する
' 第 2 引数を省略、もしくは False を指定した場合、読み取り専用のファイルに対してはエラーとなる
' ※ ファイルが存在していないとエラーとなる。
fs.DeleteFile "D:\work\doc1.txt", True
' ※ 複数のファイルを削除できる
'   対象ファイルが存在しなくてもエラーにならない
fs.DeleteFile "D:\work\*.*", True
' ■その2
' ファイルの存在を確認してから削除
If fs.FileExists("D:\work\doc1.txt") Then
fs.DeleteFile "D:\work\doc1.txt", True
End If
' ■その3
' ファイルが存在していない場合はエラーとなるが、そのエラーを補足する
On Error Resume Next
fs.DeleteFile "D:\work\doc1.txt", True
nError = Err.Number
sError = Err.Description
On Error GoTo 0
If nError <> 0 Then
' 必要であれば、ここでエラーを伝えるコードを記す
' エラーを伝える
WScript.Echo "エラーコード: " & nError
WScript.Echo "エラー内容: " & sError
' エラーを再現する
' 再現する理由は、以降の処理をさせたくない場合に使える
Err.Raise nError
End If
' ■その4
' 存在していない場合でもエラーにならない
' 戻り値で削除したか否かを判断することができる
' 戻り値の 0 は成功、0 以外は失敗
Function DeleteFile( sPath )
On Error Resume Next
fs.DeleteFile sPath, True
DeleteFile = Err.Number
On Error Goto 0
End Function
' 呼び出し例
n = DeleteFile( "D:\work" )
' ■その5
' フォルダ構成を残したままファイルのみを削除する
' 引数 sPath にフォルダのパス(文字列)を指定する
Sub DeleteFileInFolderStructure( sPath )
Set folder = fs.GetFolder( sPath )
DeleteFileInFolderStructureFO folder
End Sub
' 引数 folder に FolderObject を指定する
Sub DeleteFileInFolderStructureFO( folder )
' ファイルを削除
fs.DeleteFile folder.Path & "\*"
' サブ・フォルダの列挙
For Each f In folder
fs.DeleteFile folder.Path & "\*"
Next
End Sub
' 呼び出し例
DeleteFileInFolderStructure "D:\work"
' ■その6
' フォルダの中身を空にする
Sub EmptyFolder( sPath )
fs.DeleteFile path & "\*"
fs.DeleteFolder path & "\*"
End Sub
' 呼び出し例
EmptyFolder "D:\work"
' ■エラー
状況 Err.Number Err.Description
ファイルが存在しない 53 ファイルが見つかりません。
フォルダ・パスが間違っている
ファイルが他のプロセスによってオープンされている 70 書き込みできません。
読み取り専用ファイルを削除しようとした