ディレクトリVB6内のすべてのファイルを削除します。
-
13-09-2019 - |
質問
誰もが(サブディレクトリを除く)は、ディレクトリ内のすべてのファイルを削除しますVB6の機能で私を助けることができる場合は、
私は思っていた。
他のヒント
私は、これは動作するはずと信じています:
Dim oFs As New FileSystemObject
Dim oFolder As Folder
Dim oFile As File
If oFs.FolderExists(FolderSpec) Then
Set oFolder = oFs.GetFolder(FolderSpec)
'caution!
On Error Resume Next
For Each oFile In oFolder.Files
oFile.Delete True 'setting force to true will delete a read-only file
Next
DeleteAllFiles = oFolder.Files.Count = 0
End If
End Function
私はすべてのシナリオをテストしていませんが、それは動作するはずです。これは、すべてのファイルを削除し、ファイルがロックされているか、あなたがキャッチし、あなたが中止、再試行またはボックスを無視し得るされているエラー70を取得する必要がアクセス権を持っていない場合必要があります。
Sub DeleteAllFilesInDir(ByVal pathName As String)
On Error GoTo errorHandler
Dim fileName As String
If Len(pathName) > 0 Then
If Right(pathName, 1) <> "\" Then pathName = pathName & "\"
End If
fileName = Dir(pathName & "*")
While Len(fileName) > 0
Kill pathName & fileName
fileName = Dir()
Wend
Exit Sub
errorHandler:
If Err.Number = 70 Then
Select Case MsgBox("Could not delete " & fileName & ". Permission denied. File may be open by another user or otherwise locked.", vbAbortRetryIgnore, "Unable to Delete File")
Case vbAbort:
Exit Sub
Case vbIgnore:
Resume Next
Case vbRetry:
Resume
End Select
Else
MsgBox "Error deleting file " & fileName & ".", vbOKOnly Or vbCritical, "Error Deleting File"
End If
End Sub
私の作品などのスクリプト実行時のファイルシステムオブジェクトのDeleteFileをメソッドは、ワイルドカードをサポートしていることと思われます
Dim fs As New Scripting.FileSystemObject
fs.Deletefile "C:\Temp\*.jpg", true
このアプローチは@Corazuによって示唆アプローチよりも少ない制御を有するが、特定のケースでは、いくつかの有用性を有していてもよい。
所属していません StackOverflow