VB 检测文件夹是否为空

RT
一楼的,查了没有才问的。而且你的还不行哦。
二楼的,我只是改了路径而已啊App.Path & "\part"就不行了

有一个很简单的方法,用 RmDir 文件夹,直接删除文件夹。

如果删除出错,那就表示文件夹不是空的。


代码如下(以C:\temp为例):

tmp = "C:\temp"
On Error GoTo Err
RmDir (tmp) '删除目录,如果出错表示不为空

MkDir (tmp) '重新建目录
MsgBox "文件夹为空!"
Exit Sub

Err:
MsgBox "文件夹不为空!"

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-09-24
Dir 函数

返回一个 String,用以表示一个文件名、目录名或文件夹名称,它必须与指定的模式或文件属性、或磁盘卷标相匹配。

语法

Dir[(pathname[, attributes])]

Dir 函数的语法具有以下几个部分:

部分
描述

pathname
可选参数。用来指定文件名的字符串表达式,可能包含目录或文件夹、以及驱动器。如果没有找到 pathname,则会返回零长度字符串 ("")。

attributes
可选参数。常数或数值表达式,其总和用来指定文件属性。如果省略,则会返回匹配 pathname 但不包含属性的文件。

设置值

attributes 参数的设置可为:

常数

描述

vbNormal
0
(缺省) 指定没有属性的文件。

vbReadOnly
1
指定无属性的只读文件

vbHidden
2
指定无属性的隐藏文件

VbSystem
4
指定无属性的系统文件

vbVolume
8
指定卷标文件;如果指定了其它属性,则忽略vbVolume

vbDirectory
16
指定无属性文件及其路径和文件夹。

注意 这些常数是由 VBA
所指定的,在程序代码中的任何位置,可以使用这些常数来替换真正的数值。

说明

Dir 支持多字符 (*) 和单字符 (?) 的通配符来指定多重文件。

由于 Macintosh 不支持通配符,使用文件类型指定文件组。可以使用 MacID
函数指定文件类型而不用文件名。比如,下列语句返回当前文件夹中第一个TEXT文件的名称:
Dir("SomePath", MacID("TEXT"))

为选中文件夹中所有文件,指定一空串:
Dir("")

在 Microsoft Windows 中,如果在Dir函数中使用MacID函数,将产生错误。

任何大于256的attribute值都被认为是MacID 函数的值。

在第一次调用 Dir 函数时,必须指定 pathname,否则会产生错误。如果也指定了文件属性,那么就必须包括 pathname。

Dir 会返回匹配 pathname
的第一个文件名。若想得到其它匹配 pathname 的文件名,再一次调用
Dir,且不要使用参数。如果已没有合乎条件的文件,则 Dir 会返回一个零长度字符串
("")。一旦返回值为零长度字符串,并要再次调用 Dir 时,就必须指定 pathname,否则会产生错误。不必访问到所有匹配当前 pathname 的文件名,就可以改变到一个新的 pathname
上。但是,不能以递归方式来调用 Dir 函数。以 vbDirectory 属性来调用 Dir
不能连续地返回子目录。

提示 由于文件名并不会以特别的次序来返回,所以可以将文件名存储在一个数组中,然后再对这个数组排序。
第2个回答  2009-08-17
Private Sub Command1_Click()
'先引用Microsoft Scripting Runtime
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.GetFolder("z:\temp").Files.Count > 0 Then
MsgBox "不为空" & fso.GetFolder("z:\temp").Files.Count
Else
MsgBox "空"
End If

End Sub

不能判断子目录

==========可以啊 改相对路径也没问题 除非你没有那个文件夹

Private Sub Command1_Click()
'先引用Microsoft Scripting Runtime
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.GetFolder(App.Path & "\temp").Files.Count > 0 Then
MsgBox "不为空" & fso.GetFolder(App.Path & "\temp").Files.Count
Else
MsgBox "空"
End If

End Sub本回答被网友采纳
第3个回答  2009-08-17
if dir(<文件夹>,vbdirectory)= "" then
不存在
else
存在
end if

顺便提示一下~像这种问题,百度一下就知道了~没必要在这儿提问,还浪费时间~^_^

VB 检测文件夹是否为空
如果删除出错,那就表示文件夹不是空的。代码如下(以C:\\temp为例):tmp = "C:\\temp"On Error GoTo ErrRmDir (tmp) '删除目录,如果出错表示不为空MkDir (tmp) '重新建目录MsgBox "文件夹为空!"Exit SubErr:MsgBox "文件夹不为空!"...

在VB中如何判断文件、文件夹是否存在
Dir(file)=""表示文件或文件夹不存,即文件或文件夹的实际路径文空。Dir(file)<>""表示文件或文件夹存在,即文件或文件夹实际路径不为空。 例如判断C:\\Windows\\System32\\cmd.exe是否存在,如存在,就调用它,可用下列语句: '文件存,利用Shell调用,默值为vbNormalIf Dir("C:\\Windows\\System32\\c...

vb6.0 如何判断本程序下的a文件夹是否存在,如果不存在,就创建一个a...
还有一法是用dir()函数,但存在文件夹是否为空的问题 Private Sub Command1_Click()On Error GoTo ProErr MkDir "c:\\a"GoTo L ProErr:MsgBox "此文件夹已存在!"L:End Sub

vb,怎么删除文件夹(有时为空,有时有文件)
有两种方法:1、IfDir(Dir1.Path&\\*.*,vbDirectoryOrvbHiddenOrvbArchiveOrvbReadOnlyOrvbSystem)<Then'判断文件是否存在KillDir1.Path&\\*.*'先要删除所有文件才能删除目录IfDir(Dir1.Path&\\*.*,vbDirectoryOrvbHiddenOrvbArchiveOrvbReadOnlyOrvbSystem)=Then'再次判断文件是否存在RmDir(Dir1.Path&\\...

如何用vb探测一个文件夹是否打开
遍历所有由资源管理器打开的窗口,检测标题是否是该文件夹的路径名,是就是打开了。

这个VB程序是什么意思?
nul是一种设备名,表示“空设备”,你可以把它看成是个虚拟的文件,在任何一个实际存在的文件夹中,nul这个“文件”都是存在的,尽管你看不到。所以只要检测文件夹中是否存在nul,就可以知道这个文件夹是否真的存在了。其实比起上述方法,下面这个写法更正规:Function Direxists(path As String) As ...

用VB6.0如何区分文件和文件夹,并判断他们是否存在
CheckFileOrDir "c:\\111" '不存在的文件或者目录,除非你去建立 End Sub Private Sub CheckFileOrDir(ByVal strPath As String)If Len(Dir(strPath, vbSystem + vbHidden + vbReadOnly + vbDirectory)) > 0 Then Debug.Print GetAttr(strPath)'GetAttr函数的用法请见MSDN '常数 值 描述 '...

VB .net 如何检测一个文件或者文件夹是否存在。
If My.Computer.FileSystem.FileExists("c:\\Check.txt") Then MsgBox("File found.")Else MsgBox("File not found.")EndIf

我想用vb 监控 某个文件夹下的文件是否有变化,如果出现了变化,进行报 ...
若只是监视文件夹下的 文件数目、名称是否有改变的话 很容易。若要检测文件夹下文件内容是否被改动,就需要检测所有文件的修改日期了。先来个检测文件夹下名称、数量的吧。在VB中要实现查找文件功能,我们可以利用VB的DIR函数进行递归来实现。每次使用DIR函数后,比较是否有要查找的文件,再检查是否有子...

VB实现文件检测: 检测两个文件夹下面的哪些文件不相同,并列表出来...
给你一个简陋的思路 每个文件它都有最后修改时间以及大小,你可以通过这两个属性来判断它们是否有不同,然后进行操作,这两个属性可以通过FSO(FileSystemObject)对象来获取;当然这种方法需要做双重循环,文件如果比较多时,效率不是很好。

相似回答