先删其下文件,再删文件夹 用dir函数递归查找 
以下例子改进即可' 显示 C:\ 目录下的名称。
MyPath = "c:\"   ' 指定路径。
MyName = Dir(MyPath, vbDirectory)   ' 找寻第一项。
Do While MyName <> ""   ' 开始循环。
   ' 跳过当前的目录及上层目录。
   If MyName <> "." And MyName <> ".." Then
      ' 使用位比较来确定 MyName 代表一目录。
      If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
         Debug.Print MyName   ' 如果它是一个目录,将其名称显示出来。
      End If
   End If
   MyName = Dir   ' 查找下一个目录。
Loop

解决方案 »

  1.   

    可以用API函数 SHFileOperation 
    详情见<<程序员>>2002年第9期P104-----VB专家门诊
      

  2.   

    用 filesystemobject.deletefolder 
    可以刪除指定文件夾下的所有文件,及文件夾,是永久刪除
      

  3.   

    偷懒得办法是:
    Private Sub Command1_Click()
      Shell "deltree.exe /y 目录路径 ", vbHide
    End Sub
      

  4.   

    Option ExplicitPrivate Declare Function SHFileOperation Lib "shell32.dll" Alias " SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
    Private Type SHFILEOPSTRUCT
            hwnd As Long
            wFunc As Long
            pFrom As String
            pTo As String
            fFlags As Integer
            fAnyOperationsAborted As Long
            hNameMappings As Long
            lpszProgressTitle As String '  only used if FOF_SIMPLEPROGRESS
    End TypePrivate Function KillPath(ByVal sPath As String) As Boolean
    On Error Resume Next
        Dim udtPath As SHFILEOPSTRUCT
        udtPath.hwnd = 0
        udtPath.wFunc = &H3
        udtPath.pFrom = sPath
        udtPath.pTo = " "
        udtPath.fFlags = &H10 Or &H4 Or &H400
        KillPath = Not CBool(SHFileOperation(udtPath))
    End Function