在VBA中删除一个文件

使用VBA,我怎么能。

1.测试一个文件是否存在,如果存在。 2. 删除它?

解决办法

1.)检查这里。 基本上要这样做。

Function FileExists(ByVal FileToTest As String) As Boolean
   FileExists = (Dir(FileToTest)  "")
End Function

我将把它留给你,以弄清所需的各种错误处理,但这些是我要考虑的错误处理事项之一。

  • 检查是否有空字符串被传递。
  • 检查是否含有文件名/路径中非法字符的字符串。

2.)如何删除一个文件。 请看this. 基本上使用Kill命令,但你需要考虑到文件被只读的可能性。 这里有一个函数给你。

Sub DeleteFile(ByVal FileToDelete As String)
   If FileExists(FileToDelete) Then 'See above          
      ' First remove readonly attribute, if set
      SetAttr FileToDelete, vbNormal          
      ' Then delete the file
      Kill FileToDelete
   End If
End Sub

同样,我将把错误处理留给你,这些也是我要考虑的事情。

  • 对于一个目录和一个文件,这应该有不同的表现吗? 用户是否应该明确表示他们想删除一个目录?

  • 你想让代码自动重置只读属性,还是应该给用户某种指示,说明只读属性已被设置?


编辑:将此答案标记为社区维基,如果需要,任何人都可以修改它。

评论(3)

下面的方法可以用来测试一个文件的存在,然后删除它。

Dim aFile As String
aFile = "c:\file_to_delete.txt"
If Len(Dir$(aFile)) > 0 Then
     Kill aFile
End If 
评论(2)

在VB中,通常用Dir来查找文件的目录。如果它不是空白的,那么它就存在,然后使用`Kill'来删除该文件。

test = Dir(Filename)
If Not test = "" Then
    Kill (Filename)
End If
评论(0)