Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

團風網站制作公司哪家好,找成都創新互聯公司!從網頁設計、網站建設、微信開發、APP開發、成都響應式網站建設公司等網站項目制作,到程序開發,運營維護。成都創新互聯公司從2013年創立到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選成都創新互聯公司。
FileSystemWatcher1.NotifyFilter = IO.NotifyFilters.DirectoryName Or IO.NotifyFilters.FileName‘監控文件夾和文件。
FileSystemWatcher1.IncludeSubdirectories = True’監控子文件夾
End Sub
Private Sub FileSystemWatcher1_Renamed(sender As Object, e As IO.RenamedEventArgs) Handles FileSystemWatcher1.Renamed
MsgBox(e.FullPath vbCrLf e.Name)
End Sub'捕獲新路徑
你監控test不就好了,若要排除其他文件夾,IncludeSubdirectories 設為假,用多個FileSystemWatcher就行了,用數組或其他方式創建。
樓主你好,我測試了一下OK的,想了挺長時間的
代碼如下
控件.filelistbox
Dim
sua
As
Integer
'sua是存放上次的文件數的,所以必須為通用,靜態,不然會丟失
Private
Sub
Form_Load()
File1.FileName
=
App.Path
"\"
"新建文件夾"
'這里寫你的那個什么數據庫的地址
For
i
=
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
=
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中要實現查找文件功能,我們可以利用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運行,單擊命令按鈕即可。
'首先先引用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") '文件夾的位置,根據自己的修改
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" '文件的位置,根據自己的修改
Shell "d:\sendmail.exe" '文件的位置,根據自己的修改
End If
End Sub
Private Sub Timer1_Timer()
Set folder1 = fso1.GetFolder("d:\samples") '文件夾的位置,根據自己的修改
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") '文件夾的位置,根據自己的修改
size_b = folder1.Size
End Sub
Private WithEvents fw As IO.FileSystemWatcher
Private Shared Sub OnChanged(source As Object, e As IO.FileSystemEventArgs) Handles fw.Changed '更改指定路徑中的目錄和文件時引發該事件
MsgBox(e.Name)
End Sub
思路:
添加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.net的簡單介紹
分享地址:http://m.kartarina.com/article28/hochcp.html
成都網站建設公司_創新互聯,為您提供營銷型網站建設、做網站、網站內鏈、動態網站、網站營銷、品牌網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯