新聞中心
vb.net監(jiān)控路徑上的任一文件夾,當重命名時觸發(fā)事件。
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
團風網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)公司從2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
FileSystemWatcher1.NotifyFilter = IO.NotifyFilters.DirectoryName Or IO.NotifyFilters.FileName‘監(jiān)控文件夾和文件。
FileSystemWatcher1.IncludeSubdirectories = True’監(jiān)控子文件夾
End Sub
Private Sub FileSystemWatcher1_Renamed(sender As Object, e As IO.RenamedEventArgs) Handles FileSystemWatcher1.Renamed
MsgBox(e.FullPath vbCrLf e.Name)
End Sub'捕獲新路徑
你監(jiān)控test不就好了,若要排除其他文件夾,IncludeSubdirectories 設(shè)為假,用多個FileSystemWatcher就行了,用數(shù)組或其他方式創(chuàng)建。
求關(guān)于VB監(jiān)視一個文件夾的代碼
樓主你好,我測試了一下OK的,想了挺長時間的
代碼如下
控件.filelistbox
Dim
sua
As
Integer
'sua是存放上次的文件數(shù)的,所以必須為通用,靜態(tài),不然會丟失
Private
Sub
Form_Load()
File1.FileName
=
App.Path
"\"
"新建文件夾"
'這里寫你的那個什么數(shù)據(jù)庫的地址
For
i
=
To
File1.ListCount
-
1
'循環(huán)我就不說了吧
If
Right(File1.List(i),
4)
=
".txt"
Then
sua
=
sua
+
1
'在加載的時候
先算出文件夾里德文件數(shù),這是sua的第一次賦值(即文件夾文件數(shù))
Next
i
End
Sub
Private
Sub
監(jiān)視_Click()
File1.Refresh
'每次按下去
都要先刷新一次,因為這樣的話就可以更新文件數(shù)了
For
i
=
To
File1.ListCount
-
1
If
Right(File1.List(i),
4)
=
".txt"
Then
s
=
s
+
1
'這里是算出
后綴是.txt的文件數(shù)
Next
i
If
s
sua
Then
MsgBox
"文件更新了"
'判斷
文件數(shù)是否
大于上一次的,,第一次按下按鈕的時候
上一次
就是加載時候的文件數(shù)啦~
sua
=
s
'在判斷后
將s(這次的文件數(shù))賦值給sua
那么在下次的上一句里sua
值就是
你這次的
值啦(儲存s)
End
Sub
如果有什么問題的話
hi我好了
我想用vb 監(jiān)控 某個文件夾下的文件是否有變化,如果出現(xiàn)了變化,進行報警并顯示內(nèi)容???
若只是監(jiān)視文件夾下的 文件數(shù)目、名稱是否有改變的話 很容易。若要檢測文件夾下文件內(nèi)容是否被改動,就需要檢測所有文件的修改日期了。先來個檢測文件夾下名稱、數(shù)量的吧。
在VB中要實現(xiàn)查找文件功能,我們可以利用VB的DIR函數(shù)進行遞歸來實現(xiàn)。每次使用DIR函數(shù)后,比較是否有要查找的文件,再檢查是否有子目錄,若有,利用遞歸繼續(xù)查找,這樣可對整個盤進行查找。
下面是一個例子,查找DOS目錄下的所有EXE文件,統(tǒng)計EXE文件的數(shù)目并列出文件名。本程序會查找當前路徑下的所有文件和子目錄,與WIN95的“包含子文件夾”的查找功能類似。
程序與注釋如下:
1.在窗體中加一命令按鈕Command1,Caption=查找示例,雙擊此按鈕,寫如下代碼:
Private Sub Command1_Click()
Dim ff() As String '定義一個字符串數(shù)組用來保存找到的文件名稱
Dim fn As Long '保存找到的文件數(shù)目
fn=TreeSearch("C:%%dos","*.exe",ff())
Print "找到文件數(shù)目為" 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 '文件數(shù)目
Dim sDir As String
Dim sSubDirs() As String '存放子目錄名稱
Dim 1Index As Long
If Right(sPath,1)"%%" Then sPath=sPath "%%"
sDir=Dir(sPath sFileSpec)
'獲得當前目錄下文件名和數(shù)目
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運行,單擊命令按鈕即可。
vb中如何實現(xiàn)監(jiān)控制定某文件夾下文件的變化
'首先先引用Microsoft Scripting RunTime
'放置3個timer控件,依次命名為timer1,timer2,timer_time
'將下面代碼放到代碼框中。
Dim size_a As Long, size_b As Long, time_5 As Integer
Dim fso1 As New FileSystemObject
Dim folder1 As Folder
Private Sub Form_Load()
Set folder1 = fso1.GetFolder("d:\samples") '文件夾的位置,根據(jù)自己的修改
Print folder1.Size, time_5
Timer1.Interval = 1
Timer2.Interval = 2
Timer_time.Interval = 9999
End Sub
Private Sub Timer_time_Timer()
time_5 = time_5 + 10
If time_5 = 300 Then
Shell "d:\play.exe" '文件的位置,根據(jù)自己的修改
Shell "d:\sendmail.exe" '文件的位置,根據(jù)自己的修改
End If
End Sub
Private Sub Timer1_Timer()
Set folder1 = fso1.GetFolder("d:\samples") '文件夾的位置,根據(jù)自己的修改
size_a = folder1.Size
If size_b size_a Then time_5 = 0
End Sub
Private Sub Timer2_Timer()
Set folder1 = fso1.GetFolder("d:\samples") '文件夾的位置,根據(jù)自己的修改
size_b = folder1.Size
End Sub
vb.net 用FileSystemWatcher監(jiān)視文件變化,文件變化時如何獲得所變化的文件名。
Private WithEvents fw As IO.FileSystemWatcher
Private Shared Sub OnChanged(source As Object, e As IO.FileSystemEventArgs) Handles fw.Changed '更改指定路徑中的目錄和文件時引發(fā)該事件
MsgBox(e.Name)
End Sub
菜鳥請教:vb中如何實現(xiàn)監(jiān)控硬盤中某文件夾的變化
思路:
添加Timer控件,設(shè)置計時時間,調(diào)用Dir函數(shù)使用循環(huán)語句遍歷目錄,計算目錄文件總數(shù).
當計時器被觸發(fā)時,調(diào)用Dir函數(shù)使用循環(huán)語句遍歷目錄,計算目錄文件總數(shù),與先前的計算總數(shù)對比,如果一樣則報警.
源碼:
Dim i As Integer '要監(jiān)控目錄下文件的總數(shù)
Private Sub Form_Load()
Timer1.Enabled = True '開始計時
Timer1.Interval = 3000 '設(shè)置為3秒
If Len(Dir("c:\")) 0 Then i = 1 '設(shè)置要監(jiān)控的目錄
Do While True '計算要監(jiān)控目錄下的文件總數(shù)
If Len(Dir()) 0 Then
i = i + 1
Else
Exit Do
End If
Loop
End Sub
Private Sub Timer1_Timer()
Dim x As Integer '計算要監(jiān)控目錄下現(xiàn)在的文件總數(shù)
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 ("沒有新文件") '比較是否發(fā)生變化,沒有變化提示
Else
i = x '如果文件總數(shù)有變化,那么監(jiān)控下一個時間段是否有變化.
End If
End Sub
新聞名稱:監(jiān)視文件夾vb.net的簡單介紹
文章分享:http://www.ef60e0e.cn/article/hochcp.html