开发者

VB6 List and Delete All Files in Directory

I need to grab the names of all files in a director开发者_如何学Cy, I am currently using this code:

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

This works fine, however it does not display hidden/system files, or files with any attributes other than 'normal', how can I list files no matter their attributes?

I have tried this as well, which has the same outcome:

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


The Dir function can take a second parameter for attributes:

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

You can fin more about the Dir function here.


I pretty much always use the Microsoft Scripting Runtime for file I/O from VB6. It just does more, and it does it better and more easily. One tiny downside is that your VB program is now dependent on the Scripting Runtime DLL (scrrun.dll), which you should add as a reference from within the VB6 IDE.

Here's an example that deletes all files from a folder.

' 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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜