我现在做的结果是只能删除目录树里面最低层为空的目录,但是当一个目录被删掉后, 它的父目录很可能也为空了,这样的话,就要把他的父目录也删掉,

解决方案 »

  1.   

    ' 首先加入对Microsoft Scripting Runtime对象的引用
    Private Sub Command1_Click()
        Dim FSO As New FileSystemObject
        Dim mfolder As Folder
        Set mfolder = FSO.GetFolder("C:\mc\abc\123\234") '换成你的路径
        Dim temps As String
        Do While Not mfolder.Files.Count > 0
            temps = mfolder.ParentFolder.Path
            FSO.DeleteFolder mfolder.Path
            Set mfolder = FSO.GetFolder(temps)
        Loop
        Set mfolder = Nothing
        Set FSO = Nothing
    End Sub
      

  2.   

    //楼上老大,好像不行啊, 我用了你的方法,只能删除最低层的目录,退一层目录后就说我没权限, 不知道为什么?你是要删除系统文件吧,如果不是的话,应该不会出问题//还有一点,你在删完一个目录后就退到上一层目录去了,但如果同层目录里面有其它文件夹怎么办
    遍历该文件夹的SubFolders
      

  3.   

    Sub DelFolder(Spath,Temppath)
    Dim Count,CF,folder,subfolders,sf,Objfiles,ff
    Dim nowPath
      nowPath = Temppath 
      Set folder = fso.GetFolder(nowpath)
      Set Subfolders = Folder.Subfolders
      CF = Folder.SubFolders.count
      Count = folder.files.count
      If Count <> 0 Then
        Exit Sub
      Else
        If CF <> 0 Then
          For each sf in Subfolders
            nowpath = Spath & "\" & Sf.name
            DelFolder(nowpath)
          Next
        Else
          fso.DeleteFolder(Spath)
        End If
      End If
    End Sub