永发信息网

vb,怎么删除文件夹(有时为空,有时有文件)

答案:3  悬赏:60  手机版
解决时间 2021-07-20 21:20
  • 提问者网友:佞臣
  • 2021-07-19 22:56

Kill "d:\aa\*.*" '文件夹为空,会出错!!

RmDir "d:\aa\" ‘空文件夹直接倒是删除掉,,但有文件时就删除不了。

问题是,我要删除文件夹,有时为空,有时有文件。怎么办?
-------
http://wenwen.soso.com/z/q125914931.htm?w=vb%2C%C9%BE%B3%FD%CE%C4%BC%FE%BC%D0&ch=w.xg.tw
最佳答案
  • 五星知识达人网友:怙棘
  • 2021-07-20 00:28

有两种方法:
1、


If Dir(Dir1.Path & "\*.*", vbDirectory Or vbHidden Or vbArchive Or vbReadOnly Or vbSystem) <> "" Then '判断文件是否存在
Kill Dir1.Path & "\*.*" '先要删除所有文件才能删除目录
If Dir(Dir1.Path & "\*.*", vbDirectory Or vbHidden Or vbArchive Or vbReadOnly Or vbSystem) = "" Then '再次判断文件是否存在
RmDir (Dir1.Path & "\")
MsgBox "文件夹删除成功!", vbInformation, "提示信息!"
End If
End If


提示:这种方法是先判断文件夹里面是否存在文件,如果不存在,则直接移除文件夹,如果存在,则删除文件夹中的文件,再把文件夹移除,但是它有一个致命的弱点,那就是如果文件夹中还含有子文件夹,以及子文件夹中还含有文件就做不到了。所以还有另外一种方法,可以完全删除文件夹,不管文件夹里面有没有什么东西,都可以实现。


这种方法就是VB中特有的方法FSO法,具体应用如下:


通过“工程”菜单中的“引用”选项,在里面选中“Micrsoft Scripting Runtime”后单击确定


然后就可以写代码了: 添加到你相应的事件里面去就可以了
Dim fso As New FileSystemObject
Dim fldr As Folder
Dim n As String
n = MsgBox("文件夹一旦删除将不可恢复,确实要删除该文件夹吗?", vbInformation + vbOKCancel, "提示信息")
If n = vbOK Then
fso.DeleteFolder (Dir1.Path)
MsgBox "文件夹删除成功!", vbInformation, "提示信息!"
End If

全部回答
  • 1楼网友:污到你湿
  • 2021-07-20 01:00
1楼对的。 我就不说了 ,先判断是否存在,是否为空。
  • 2楼网友:一袍清酒付
  • 2021-07-20 00:47

你可以先判断文件夹是否为空,若为空Rmdir掉,若不为空,先Kill所有文件然后再Rmdir掉

Dim folderPath As String folderPath = "D:\aa\" If Dir(folderPath) = "" Then RmDir folderPath Else Kill folderPath & "*.*" RmDir folderPath End If

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯