I have not tested every scenario, but it should work. It should delete every file, and if the file is locked or you do not have access, you should get Error 70, which is caught, and you will get the Abort, Retry or Ignore field.
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
source share