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


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

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

帅哥哟,离线,有人找我吗?
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编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/8/21 17:29:00 [只看该作者]

这个只能关闭正在使用的文件后, 才能删除这个目录吧.   另外即使可以, 也太危险了吧,因为打开的文件至少现在还是有用的,强制删除你会后悔的啊~  

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


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

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

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


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/8/21 21:59:00 [只看该作者]

应请教系统专家啦~  好像win都不能这样的,俺不行, 帮你顶~ 

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33957 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/8/21 22:44:00 [只看该作者]

以下是引用migold在2010-8-21 17:36:00的发言:

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

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

 

应该可以的,不过写这样的代码有些麻烦。


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


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

谢谢

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33957 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/8/22 18:24:00 [只看该作者]

这样就算解决了?

你不是要求已经打开的文件不删除吗?

 


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


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

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


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/8/23 11:04:00 [只看该作者]

6楼代码是不行的,可能会漏删除文件。
[此贴子已经被作者于2010-8-23 11:04:42编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
migold
  10楼 | 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楼提示写的,请指教


 回到顶部
总数 13 1 2 下一页