我想用vb 监控 某个文件夹下的文件是否有变化,如果出现了变化,进行报警并显示内容??? 10

我想用vb监控某个文件夹下的文件是否有变化,如果出现了变化,进行报警并显示内容???使用Dir函数吗??如何调用Dir函数呢??不要复制别人的说的再明白些... 我想用vb 监控 某个文件夹下的文件是否有变化,如果出现了变化,进行报警并显示内容??? 使用Dir 函数吗 ??如何调用 Dir 函数呢??
不要复制别人的
说的再明白些
展开
 我来答
mole0550
2011-04-20 · 超过19用户采纳过TA的回答
知道答主
回答量:49
采纳率:0%
帮助的人:50.4万
展开全部
若只是监视文件夹下的 文件数目、名称是否有改变的话 很容易。若要检测文件夹下文件内容是否被改动,就需要检测所有文件的修改日期了。先来个检测文件夹下名称、数量的吧。
在VB中要实现查找文件功能,我们可以利用VB的DIR函数进行递归来实现。每次使用DIR函数后,比较是否有要查找的文件,再检查是否有子目录,若有,利用递归继续查找,这样可对整个盘进行查找。
下面是一个例子,查找DOS目录下的所有EXE文件,统计EXE文件的数目并列出文件名。本程序会查找当前路径下的所有文件和子目录,与WIN95的“包含子文件夹”的查找功能类似。

程序与注释如下:
1.在窗体中加一命令按钮Command1,Caption=查找示例,双击此按钮,写如下代码:

Private Sub Command1_Click()
Dim ff() As String '定义一个字符串数组用来保存找到的文件名称
Dim fn As Long '保存找到的文件数目
fn=TreeSearch("C:%%dos","*.exe",ff())
Print "找到文件数目为" & fn
For I=1 To fn
Print ff(I)
Next
End Sub

2.插入一模块Modulel.bas,写如下代码:

Option Explicit
Public Function TreeSearch(ByVal sPath As String,ByVal sFileSpec As String,sFiles() As String) As Long
Static 1Files As Long '文件数目
Dim sDir As String
Dim sSubDirs() As String '存放子目录名称
Dim 1Index As Long
If Right(sPath,1)<>"%%" Then sPath=sPath & "%%"
sDir=Dir(sPath & sFileSpec)
'获得当前目录下文件名和数目
Do While Len(sDir)
1Files=1Files+1
ReDim Preserve sFiles(1 To 1Files)
sFiles(1Files)=sPath & sDir
sDir=Dir
Loop
'获得当前目录下的子目录名称
1Index=0
sDir=Dir(sPath & "*.*",16)
Do While Len(sDir)
If Left(sDir,1)<>"." Then 'skip.and..
'找出子目录名
If GetAttr(sPath & sDir)And vbDirectory Then
1Index=lIndex+1
'保存子目录名
Redim Preserve sSubDirs(1 To 1Index)
sSubDirs(1Index)=sPath & sDir & "%%"
End If
End If
sDir=dir
Loop
For 1Index=1 To 1Index
'查找每一个子目录下文件,这里利用了递归
Call TreeSearch(sSubDirs(1Index),sFileSpec,sFiles())
Next 1Index
TreeSearch=1Files
End Function

3.保存文件,按F5运行,单击命令按钮即可。
追问
能不复制别人的吗?谢谢了
说的再清楚些
gggfqb
2012-06-01 · TA获得超过220个赞
知道答主
回答量:99
采纳率:0%
帮助的人:39.6万
展开全部
在VS里用 FileSystemWatcher 控件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式