【问题标题】:Delete all files in a folder删除文件夹中的所有文件
【发布时间】:2017-05-24 15:32:27
【问题描述】:

我有下面的代码来尝试搜索我的下载文件夹中的所有文件,然后将它们全部删除,但是它基于没有足够参数的 kill 函数返回错误消息,有什么想法吗?

Sub Kill ()

Dim aFile As String
aFile = "C:\Test\Test\Downloads\*.*"
If Len(Dir$(aFile)) > 0 Then
    Kill aFile
End If

End Sub

谢谢,

【问题讨论】:

    标签: vba file kill


    【解决方案1】:

    更简单的方法:

    Sub Del()
      Kill "C:\FolderName\*.*"
    End Sub

    【讨论】:

    • 虽然此代码 sn-p 可以解决问题,但 including an explanation 有助于提高您的回复质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
    • 如果使用此代码且文件夹为空,会产生错误:“Execution error: 53 / file not found”。所以它确实很简单,但不是 100% 可靠。而且我认为添加“On Error Resume Next”之类的内容不是一个好主意...
    • 没错,所以最好像@Ashok answer那样做
    • 此外,当应用程序正在使用文件时,您会收到执行错误:70 / 权限被拒绝。我更喜欢像 @John-Alexiou 那样使用 FileSystemObject。
    【解决方案2】:

    您应该将宏命名为内置函数。只需更改具有相同编码的宏即可解决问题...

    Sub Kill1 ()
    
    Dim aFile As String
    aFile = "C:\Test\Test\Downloads\*.*"
    If Len(Dir$(aFile)) > 0 Then
        Kill aFile
    End If
    
    End Sub
    

    【讨论】:

    • 你不应该**
    • 编辑问题以进行更正,而不是将其添加为评论。另外,请将您的代码格式化为代码。
    【解决方案3】:

    在VBA环境中添加对Microsoft Scripting Runtime的引用

    Module下面的行中声明

    Global fso As New FileSystemObject
    

    现在您可以使用所有漂亮且现代的 I/O 功能。例如:

    Public Sub TDELFOL()    
        Dim path As String, f As File
        path = fso.GetSpecialFolder(TemporaryFolder)
        path = fso.BuildPath(path, "MyTempFolder")
        If fso.FolderExists(path) Then
            For Each f In fso.GetFolder(path).Files
                f.Delete Force = True
            Next
            fso.DeleteFolder path, Force = True
        End If
    End Sub
    

    【讨论】:

    • 我发现了我的问题,我正在尝试删除所有自动保存到计算机上 C: 下载的文件,因此它们不在该位置的文件夹中,只是进入用户,然后下载。关于如何通过 VBA 清除所有下载的任何想法?
    • C:\Downloads,还是C:\Users\<userid>\Downloads?请edit 带有细节 的问题,并清楚您的意图。也许提供一个之前和之后的例子。
    • 对不起,我不是很清楚,我使用了您在上面放置的编码,但是因为 C:\Downloads 不是文件夹,它不会删除任何文件。如果我在该位置放置一个文件夹,它将删除该文件夹,但我想清除下载中的所有文件。那有意义吗?谢谢,
    • 我已经编辑了答案以显示首先删除文件夹中的所有文件,然后是文件夹本身(如果需要)。我希望您可以根据自己的需要调整上述内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多