VB程序删除指定目录下的所有文件及其子目录代码.
'-------------------------------------------------------------------------
'昨天研究了一下 有所发现 所以今天就将它完成 比较实用 呵!很久没上手VB了...
'把以下代码全部复制到代码框中 在窗体上加一个命令按钮就OK了.
'天枫十一郎 2005.9.22
'-------------------------------------------------------------------------
Option Explicit
Sub KillFile(FilePath)
'无效
'--------------------------
'对目录下的所有文件进行处理
'--------------------------
Dim FileName
'FilePath & "*.txt"
'取得FilePath目录下的第一个文件名 改变FilePath参数可以指定取得文件类型
FileName = Dir(FilePath, vbNormal + vbReadOnly + vbHidden + vbSystem + vbVolume + vbArchive)
Do While FileName <> ""
SetAttr FilePath & FileName, vbNormal '设置文件属性为全开
Print FileName
'Kill FilePath & FileName
FileName = Dir() '下一个文件
Loop
End Sub
Private Sub Command1_Click()
Dim FilePath As String '初始目录
Dim FileName As String '文件名
Dim DirName As String '子目录名
Dim DirPath() As String '保存子目录名
Dim DirSum As Integer '子目录总数
Dim i As Integer
FilePath = "A:\" '初始目录为A盘
'----------------------------
'对目录下的所有子目录进行处理
'----------------------------
ret:
DirName = Dir(FilePath, vbDirectory) '取得FilePath目录下的第一个子目录
'如果是根目录或是子目录名 则循环至有第一个目录
Do While DirName = "." Or DirName = ".."
DirName = Dir()
Loop
'如果没有子目录就不运行
Do While DirName <> ""
If (GetAttr(FilePath & DirName) And vbDirectory) = vbDirectory Then '判断是否是一个文件夹或目录
DirSum = DirSum + 1
'Preserve是不改变数组以前原有的数据来重新定义数组大小
ReDim Preserve DirPath(DirSum) '重新给数组定义大小
DirPath(DirSum) = FilePath & DirName & "\"
'Call KillFile(FilePath & DirName & "\") '调用删除目录下所有文件子程序
'RmDir FilePath & DirName
Else '若不是目录或文件夹则对文件进行处理
'删除本目录所有文件
'Print DirName
Kill FilePath & DirName
End If
DirName = Dir() '下一个目录或文件
Loop
'------------------------
'循环得到所有子目录
For i = i + 1 To DirSum
FilePath = DirPath(i) '改变当前路径
GoTo ret'跳回仿递归处理
Next
'------------------------------------------------------
'------------------------------------------------------
'------------------------------------------------------
'对所取得的子目录进行处理
'For i = 1 To DirSum
'Call KillFile(DirPath(i)) '调用删除目录下所有文件子程序
'Next
'删除所有剩余的空目录
For i = 0 To DirSum - 1
RmDir DirPath(DirSum - i) '删除剩下的空目录
Next
'-----------------------------------
'END
End Sub