我想知道是否有人能帮助我,VB6的功能,将删除(不包括子目录)目录中的所有文件。

有帮助吗?

解决方案

一条线路,使用VB6语句杀死

Kill "c:\doomed_dir\*.*"

帮助主题说“在微软视窗,杀支持使用多字符(*)和单字符(?)通配符以指定多个文件”。

顺便说一句 - 我更喜欢以避免Microsoft脚本运行(包括FileSystemObject的)。在我的经验,它偶尔打破用户的机器,也许是因为他们的IT部门是偏执病毒。

其他提示

我认为这应该工作:

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

这似乎是脚本运行FileSystemObject的的方法的DeleteFile也支持通配符,因为这对我的作品:

Dim fs As New Scripting.FileSystemObject
fs.Deletefile "C:\Temp\*.jpg", true

此方法具有比@Corazu建议的方法少控制,但也可以在某些情况下某些实用程序。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top