VB6列出并删除目录中的所有文件

时间:2011-06-25 17:32:43

标签: list file vb6 directory delete-file

我需要获取目录中所有文件的名称,我目前正在使用此代码:

Dim File As String
File = Dir$(Environ("AppData") & "\*.exe")

Do While Len(File)
    MsgBox "Deleting: " & Environ("AppData") & "\" & File
Kill Environ("AppData") & "\" & File
    File = Dir$
Loop

这样可以正常工作,但它不显示隐藏/系统文件,或者除了“普通”以外的任何属性的文件,如何列出文件而不管其属性?

我也试过这个,结果相同:

Kill Environ("AppData") & "\*.*"

2 个答案:

答案 0 :(得分:2)

我几乎总是将Microsoft Scripting Runtime用于VB6的文件I / O.它只是做得更多,它做得更好,更容易。一个小小的缺点是你的VB程序现在依赖于Scripting Runtime DLL(scrrun.dll),你应该在VB6 IDE中添加它作为参考。

以下是删除文件夹中所有文件的示例。

' Note: This code is untested.

Sub Main()
    DeleteAllFilesInFolder Environ("App_Data")
End Sub

Sub DeleteAllFilesInFolder(strFolder As String)

    Dim fso As Scripting.FileSystemObject
    Dim objFolder As Scripting.Folder
    Dim objFile As Scripting.File

    Set fso = New Scripting.FileSystemObject
    Set objFolder = fso.GetFolder(strFolder)
    For Each objFile in objFolder.Files
        objFile.Delete force:=True
    Next

End Sub

答案 1 :(得分:2)

Dir函数可以为属性采用第二个参数:

File = Dir$(Environ("AppData") & "\*.exe", vbHidden & vbSystem)

您可以了解有关Dir函数here的更多信息。