Foxtable(狐表)用户栏目专家坐堂 → 删除文件目录问题(问题已解决)


  共有13174人关注过本帖树形打印复制链接

主题:删除文件目录问题(问题已解决)

帅哥哟,离线,有人找我吗?
migold
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:447 积分:4572 威望:0 精华:0 注册:2009/1/11 11:00:00
删除文件目录问题(问题已解决)  发帖心情 Post By:2010/8/21 16:48:00 [显示全部帖子]

如题。

我写了代码

        If FileSys.DirectoryExists("D:\Temp") Then '要删除文件目录
            Try
                FileSys.DeleteDirectory("D:\Temp",2,2)
            Catch ex As Exception
            End Try
        End If

如果,D:\Temp目录下的文件或下级目录中有文件在使用中,就不能删除。

目的主要是:删除D:\Temp目录下未在使用的文件或下级目录,如果出现有使用的文件就忽略,请教高手代码

[此贴子已经被作者于2010-8-22 15:44:38编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
migold
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:447 积分:4572 威望:0 精华:0 注册:2009/1/11 11:00:00
  发帖心情 Post By:2010/8/21 17:36:00 [显示全部帖子]

我只是要删除Temp目录下的未打开文件,已打开的文件不用删除,

我只是要删除Temp目录下的未使用目录,已使用的目录不用删除


 回到顶部
帅哥哟,离线,有人找我吗?
migold
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:447 积分:4572 威望:0 精华:0 注册:2009/1/11 11:00:00
  发帖心情 Post By:2010/8/22 15:44:00 [显示全部帖子]

谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
migold
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:447 积分:4572 威望:0 精华:0 注册:2009/1/11 11:00:00
  发帖心情 Post By:2010/8/23 11:02:00 [显示全部帖子]

我是根据6楼楼主的代码提示,再写出代码。


 回到顶部
帅哥哟,离线,有人找我吗?
migold
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:447 积分:4572 威望:0 精华:0 注册:2009/1/11 11:00:00
  发帖心情 Post By:2010/8/23 11:07:00 [显示全部帖子]

Dim mFile1,mFile2,mFile3,mMes1 As String
Dim mi6,mi7,mi8 As Integer
mFile1 = "C:\Temp"
mFile2 = "D:\Temp"
mFile3 = "E:\Temp"
mMes1 = "删除临时目录"
            Dim mdeldirs,mdeldirs1,mdeldirs2,mdeldirs3 As New List(Of String)
            If mFile1 IsNot Nothing Andalso mFile1 <> "" Then
                mdeldirs.Add(mFile1)
            End If
            If mFile2 IsNot Nothing Andalso mFile2 <> "" Then
                mdeldirs.Add(mFile2)
            End If
            If mFile3 IsNot Nothing Andalso mFile3 <> "" Then
                mdeldirs.Add(mFile3)
            End If
            mi6 = 0
            For mdels As Integer = 0 To mdeldirs.Count - 1
                If FileSys.DirectoryExists(mdeldirs(mdels)) Then '判断删除目录存在
                    mdeldirs1.Clear()
                    mdeldirs1.Add(mdeldirs(mdels))
                    For Each mdelFile2 As String In FileSys.GetFiles(mdeldirs(mdels))
                        Try
                            FileSys.DeleteFile(mdelFile2,2,2) '则彻底删除文件
                        Catch ex As Exception
                            mi6 = mi6 + 1
                        End Try
                    Next
                    Do
                        mdeldirs2.Clear()
                        For mdels1 As Integer = 0 To mdeldirs1.Count - 1
                            For Each mdeldir As String In FileSys.GetDirectories(mdeldirs1(mdels1))
                                mdeldirs2.Add(mdeldir)
                                mdeldirs3.Add(mdeldir)
                                For Each mdelFile As String In FileSys.GetFiles(mdeldir)
                                    Try
                                        FileSys.DeleteFile(mdelFile,2,2) '则彻底删除文件
                                    Catch ex As Exception
                                        mi6 = mi6 + 1
                                    End Try
                                Next
                            Next
                        Next
                        mdeldirs1.Clear()
                        For mdels2 As Integer = 0 To mdeldirs2.Count - 1
                            mdeldirs1.Add(mdeldirs2(mdels2))
                        Next
                    Loop While mdeldirs1.Count > 0
                End If
            Next
            mi8 = 0
            For mdels3 As Integer = 0 To mdeldirs3.Count - 1
                mi7 = 0
                For Each mdeldir1 As String In FileSys.GetDirectories(mdeldirs3(mdeldirs3.Count-1-mdels3))
                    mi7 = 1
                Next
                For Each mdelFile1 As String In FileSys.GetFiles(mdeldirs3(mdeldirs3.Count-1-mdels3))
                    mi7 = 1
                Next
                mi8 = mi8 + mi7
                If mi7 = 0 Then
                    Try
                        FileSys.DeleteDirectory((mdeldirs3(mdeldirs3.Count-1-mdels3)),2,2)
                    Catch ex As Exception
                    End Try
                End If
            Next
            If mi6 > 0 Orelse mi8 > 0 Then
                MessageBox.Show(mi6 & "个文件未删除" & vbCrlf & mi8 & "个文件夹未删除" & vbCrlf,mMes1)
            Else
                MessageBox.Show("全都删除完成",mMes1)
            End If

这个代码,是我按照6楼提示写的,请指教


 回到顶部
帅哥哟,离线,有人找我吗?
migold
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:447 积分:4572 威望:0 精华:0 注册:2009/1/11 11:00:00
  发帖心情 Post By:2010/8/23 13:03:00 [显示全部帖子]

能否简化一下代码,提高速度????


 回到顶部