文件管理 · 2024年9月16日

vb监控文件夹|菜鸟请教:vb中如何实现监控硬盘中某文件夹的变化

『壹』 求关于VB监视一个文件夹的代码

楼主你好,我测试了一下OK的,想了挺长时间的代码如下控件.filelistboxDimsuaAsInteger'sua是存放上次的文件数的,所以必须为通用,静态,不然会丢失PrivateSubForm_Load()File1.FileName=App.Path&"\"&"新建文件夹"'这里写你的那个什么数据库的地址Fori=0ToFile1.ListCount-1'循环我就不说了吧IfRight(File1.List(i),4)=".txt"Thensua=sua+1'在加载的时候先算出文件夹里德文件数,这是sua的第一次赋值(即文件夹文件数)NextiEndSubPrivateSub监视_Click()File1.Refresh'每次按下去都要先刷新一次,因为这样的话就可以更新文件数了Fori=0ToFile1.ListCount-1IfRight(File1.List(i),4)=".txt"Thens=s+1'这里是算出后缀是.txt的文件数NextiIfs>suaThenMsgBox"文件更新了"'判断文件数是否大于上一次的,,第一次按下按钮的时候上一次就是加载时候的文件数啦~sua=s'在判断后将s(这次的文件数)赋值给sua那么在下次的上一句里sua值就是你这次的值啦(储存s)EndSub如果有什么问题的话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 Theni = i + 1ElseExit DoEnd IfLoopEnd SubPrivate Sub Timer1_Timer()Dim x As Integer '计算要监控目录下现在的文件总数If Len(Dir("c:\")) > 0 Then x = 1Do While TrueIf Len(Dir()) > 0 Thenx = x + 1ElseExit DoEnd IfLoopIf i = x ThenMsgBox ("没有新文件") '比较是否发生变化,没有变化提示Elsei = x '如果文件总数有变化,那么监控下一个时间段是否有变化.End IfEnd Sub

『叁』 用VB怎么监控文件夹是否有新的文件生成

我自创的方法。考虑到实时检测是否有新文件,应该用一个Timer。画两个FileListBox控件,控件名分别为File1、File2;画一个TextBox,名为Text1;画一个Timer,名为Timer1。要求将目标文件夹新生成的Txt文件内容显示到Text1中。Private Sub Form_Load()File1.Path = "在引号里打上要监测的路径。如果路径不是某个盘的根目录则不要在最后一个文件夹名的后面打上“\”"File2.Path = File1.PathFile1.Pattern = "*.txt"File2.Pattern = "*.txt"File1.Visible = FalseFile2.Visible = FalseTimer1.Interval = 在等号后面打上一个整数用来确定扫描新文件的频率,单位是毫秒,最低值是1End SubPrivate Sub Timer1_Timer()File2.RefreshIf File2.ListCount > File1.ListCount ThenIf File1.ListCount = 0 ThenFile2.ListIndex = 0Elsei = 0File1.ListIndex = iFile2.ListIndex = iDo While File2.FileName = File1.FileName And i <= File1.ListCount – 1File1.ListIndex = iFile2.ListIndex = ii = i + 1LoopIf i = File1.ListCount – 1 ThenFile2.ListIndex = i – 1ElseFile2.ListIndex = iEnd IfEnd Ifurl = File2.PathIf Right(url, 1) <> "\" Thenurl = url & "\"End Ifurl = url & File2.FileNameOpen url For Input As #1Text1.Text = StrConv(InputB(LOF(1), #1), vbUnicode)Close #1File1.RefreshEnd IfIf File2.ListCount < File1.ListCount ThenFile1.RefreshEnd IfEnd Sub绝对好使,我在VB上试过了。