楼主你好,我测试了一下OK的,想了挺长时间的
代码如下
控件.filelistbox
Dim
sua
As
Integer
'sua是存放上次的文件数的,所以必须为通用,静态,不然会丢失
Private
Sub
Form_Load()
File1.FileName
=
App.Path
&
"\"
&
"新建文件夹"
'这里写你的那个什么数据库的地址
For
i
=
0
To
File1.ListCount
-
1
'循环我就不说了吧
If
Right(File1.List(i),
4)
=
".txt"
Then
sua
=
sua
+
1
'在加载的时候
先算出文件夹里德文件数,这是sua的第一次赋值(即文件夹文件数)
Next
i
End
Sub
Private
Sub
监视_Click()
File1.Refresh
'每次按下去
都要先刷新一次,因为这样的话就可以更新文件数了
For
i
=
0
To
File1.ListCount
-
1
If
Right(File1.List(i),
4)
=
".txt"
Then
s
=
s
+
1
'这里是算出
后缀是.txt的文件数
Next
i
If
s
>
sua
Then
MsgBox
"文件更新了"
'判断
文件数是否
大于上一次的,,第一次按下按钮的时候
上一次
就是加载时候的文件数啦~
sua
=
s
'在判断后
将s(这次的文件数)赋值给sua
那么在下次的上一句里sua
值就是
你这次的
值啦(储存s)
End
Sub
如果有什么问题的话
hi我好了
『贰』 菜鸟请教:vb中如何实现监控硬盘中某文件夹的变化
思路:
添加Timer控件,设置计时时间,调用Dir函数使用循环语句遍历目录,计算目录文件总数.
当计时器被触发时,调用Dir函数使用循环语句遍历目录,计算目录文件总数,与先前的计算总数对比,如果一样则报警.
源码:
Dim i As Integer '要监控目录下文件的总数
Private Sub Form_Load()
Timer1.Enabled = True '开始计时
Timer1.Interval = 3000 '设置为3秒
If Len(Dir("c:\")) > 0 Then i = 1 '设置要监控的目录
Do While True '计算要监控目录下的文件总数
If Len(Dir()) > 0 Then
i = i + 1
Else
Exit Do
End If
Loop
End Sub
Private Sub Timer1_Timer()
Dim x As Integer '计算要监控目录下现在的文件总数
If Len(Dir("c:\")) > 0 Then x = 1
Do While True
If Len(Dir()) > 0 Then
x = x + 1
Else
Exit Do
End If
Loop
If i = x Then
MsgBox ("没有新文件") '比较是否发生变化,没有变化提示
Else
i = x '如果文件总数有变化,那么监控下一个时间段是否有变化.
End If
End Sub
『叁』 用VB怎么监控文件夹是否有新的文件生成
我自创的方法。考虑到实时检测是否有新文件,应该用一个Timer。
画两个FileListBox控件,控件名分别为File1、File2;画一个TextBox,名为Text1;画一个Timer,名为Timer1。要求将目标文件夹新生成的Txt文件内容显示到Text1中。
Private Sub Form_Load()
File1.Path = "在引号里打上要监测的路径。如果路径不是某个盘的根目录则不要在最后一个文件夹名的后面打上“\”"
File2.Path = File1.Path
File1.Pattern = "*.txt"
File2.Pattern = "*.txt"
File1.Visible = False
File2.Visible = False
Timer1.Interval = 在等号后面打上一个整数用来确定扫描新文件的频率,单位是毫秒,最低值是1
End Sub
Private Sub Timer1_Timer()
File2.Refresh
If File2.ListCount > File1.ListCount Then
If File1.ListCount = 0 Then
File2.ListIndex = 0
Else
i = 0
File1.ListIndex = i
File2.ListIndex = i
Do While File2.FileName = File1.FileName And i <= File1.ListCount - 1
File1.ListIndex = i
File2.ListIndex = i
i = i + 1
Loop
If i = File1.ListCount - 1 Then
File2.ListIndex = i - 1
Else
File2.ListIndex = i
End If
End If
url = File2.Path
If Right(url, 1) <> "\" Then
url = url & "\"
End If
url = url & File2.FileName
Open url For Input As #1
Text1.Text = StrConv(InputB(LOF(1), #1), vbUnicode)
Close #1
File1.Refresh
End If
If File2.ListCount < File1.ListCount Then
File1.Refresh
End If
End Sub
绝对好使,我在VB上试过了。