Foxtable(狐表)用户栏目专家坐堂 → 关于 DeleteDirectory


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

主题:关于 DeleteDirectory

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


加好友 发短信
等级:一尾狐 帖子:423 积分:3196 威望:0 精华:0 注册:2013/5/10 10:01:00
关于 DeleteDirectory  发帖心情 Post By:2015/1/14 15:22:00 [只看该作者]

执行 FileSys 的 DeleteDirectory时, 有个参数  showUI, 他有两个选项:

2: 只显示错误对话框,隐藏进度对话框
3: 显示进度对话框和所有错误对话框。


请问我想在执行时 不报错误 怎么办?  就是即使删除时出现错误,也不要报出来,直接再往下执行,该怎样实现?


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/1/14 15:23:00 [只看该作者]


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


加好友 发短信
等级:一尾狐 帖子:423 积分:3196 威望:0 精华:0 注册:2013/5/10 10:01:00
  发帖心情 Post By:2015/1/14 16:37:00 [只看该作者]

用try 不行呀,代码如下, 意思是,每次 启动项目时,先检查一个 temp 目录是否存在,如果不存在,就创建它, 如果 存在,就把它下面的 内容都删除,使用了 try之后,还是 以对话框的形式 报以下错误,请问有那种不用对话框报错的吗? 否则用户体验不好, 我的意思是,即使删除不了文件夹,可以不删除,但是不要以对话框的形式报错


图片点击可在新窗口打开查看此主题相关图片如下:134.png
图片点击可在新窗口打开查看



图片点击可在新窗口打开查看此主题相关图片如下:178.png
图片点击可在新窗口打开查看



If FileSys.DirectoryExists(ProjectPath & "Temp") = False Then
    FileSys.CreateDirectory(ProjectPath & "Temp")
End If

If FileSys.DirectoryExists(ProjectPath & "Temp") = True Then
    Dim fi As FileInfo = new Fileinfo(ProjectPath & "Temp")
    If fi.Hidden= False Then
        fi.Hidden=True
    End If
End If


If FileSys.DirectoryExists(ProjectPath & "Temp") = True Then
    For Each dir As String In FileSys.GetDirectories(ProjectPath & "Temp")        
        Try
            FileSys.DeleteDirectory(dir,2,3)
        Catch ex As Exception
            
        End Try
    Next
End If

If FileSys.DirectoryExists(ProjectPath & "Temp") = True Then
    For Each f As String In FileSys.GetFiles(ProjectPath & "Temp")
        Try
            FileSys.DeleteFile(f)
        Catch ex As Exception
            
        End Try
        
    Next
End If

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/1/14 16:43:00 [只看该作者]

用了Try没道理还弹出这种错误框,是你其他地方的代码报错的把

你把整个代码用TRY套住看看

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


加好友 发短信
等级:一尾狐 帖子:423 积分:3196 威望:0 精华:0 注册:2013/5/10 10:01:00
  发帖心情 Post By:2015/1/14 16:49:00 [只看该作者]

就是这个地方的代码,你自己可以试试这段代码, 稍微修改一下,事实上不仅这个地方,还有很多地方都是这样, 例如 之前用vba来关闭和保存一个excel文件,对于低版本的excel,会报以下错误,同样是用 try给包括进来的,在例如连接短信猫时,用try包住,如果连接异常,仍然 会用对话框报错

excel报错如下

图片点击可在新窗口打开查看此主题相关图片如下:189.png
图片点击可在新窗口打开查看


操作excel的代码如下,很明显都有try 给包住了
 try
                'oDocument.cancel
                oDocument.save
                oDocument.Saved = True
                
            Catch ex As Exception
                'MessageBox.Show("追加数据失败")
            End Try
            
            try
                oDocument.close
            Catch ex As Exception
                'MessageBox.Show("追加数据失败")
            End Try
            
            
            
        End If
        
        try
            oDocument.delete
        Catch ex As Exception
            'MessageBox.Show("追加数据失败")
        End Try


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/1/14 16:53:00 [只看该作者]

这种错误对话框是会有的.  3楼第一张图那种不会有.

具体的问题,具体解决吧. 你这个当前版本Excel不支持你表中的一些功能导致的吧

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/14 16:59:00 [只看该作者]

 呃,那种方法不支持try catch,你研究一下 System.IO.File 的delete方法吧

 

http://msdn.microsoft.com/zh-cn/library/system.io.file.delete.aspx

 

http://www.cnblogs.com/wggWeb/archive/2012/02/24/2364521.html

 


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


加好友 发短信
等级:一尾狐 帖子:423 积分:3196 威望:0 精华:0 注册:2013/5/10 10:01:00
  发帖心情 Post By:2015/1/15 9:42:00 [只看该作者]

从这两个网页上也看不出什么来,我想问一下,是不是删除一个空目录,就不会出现上面的提示信息了? 你的意思是不是让我写一个递归,先把目录里面的 文件夹和文件清空,然后再删除这个空文件夹?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/15 10:08:00 [只看该作者]

 回复8楼,是的,用递归一个一个的删除文件,如果删除某个文件出错的话,是可以用try catch捕捉到的,如果出错,你可以不删除此文件。

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/1/15 10:09:00 [只看该作者]

 try
System.IO.Directory.Delete("文件夹地址",True)
catch
End try

测试没有问题,文件被占用也不会报错

 回到顶部