VB.Net/File Directory/File System Watcher

Материал из VB Эксперт
Перейти к: навигация, поиск

File System Watcher: File Folder Created

<source lang="vbnet"> Imports System Imports System.IO Public Class MainClass

  Shared Private WithEvents m_FileSystemWatcher As FileSystemWatcher
  Shared Sub Main()
       m_FileSystemWatcher = New FileSystemWatcher("C:\")
       m_FileSystemWatcher.EnableRaisingEvents = True
  End Sub 
   " Watch for file creations.
   Shared Private Sub m_FileSystemWatcher_Created(ByVal sender As Object, ByVal e As System.IO.FileSystemEventArgs) Handles m_FileSystemWatcher.Created
       Console.WriteLine(e.FullPath & " created")
   End Sub

End Class


 </source>


File System Watcher: file updated, created

<source lang="vbnet"> Imports System.IO Module Module1

   WithEvents Watcher As New FileSystemWatcher("C:\")
   Sub Main()
       Watcher.Filter = "*.*"
       Watcher.IncludeSubdirectories = True
       Watcher.EnableRaisingEvents = True
       Console.ReadLine()
   End Sub
   Sub OnChanged(ByVal From As Object, ByVal e As FileSystemEventArgs) Handles Watcher.Changed
       Dim DateAndTime As DateTime = DateTime.Now
       Console.WriteLine(e.FullPath & " " _
          & e.ChangeType() & " " & DateAndTime)
   End Sub

End Module


 </source>


File Watcher

<source lang="vbnet"> Imports System.IO Imports System.Windows.Forms <Global.Microsoft.VisualBasic.rupilerServices.DesignerGenerated()> _ Partial Class Watcher

   Inherits System.Windows.Forms.Form
   <System.Diagnostics.DebuggerStepThrough()> _
   Private Sub InitializeComponent()
       Me.Label2 = New System.Windows.Forms.Label
       Me.Label1 = New System.Windows.Forms.Label
       Me.txtTypes = New System.Windows.Forms.TextBox
       Me.lstNewFiles = New System.Windows.Forms.ListBox
       Me.cmdStop = New System.Windows.Forms.Button
       Me.cmdStart = New System.Windows.Forms.Button
       Me.txtDir = New System.Windows.Forms.TextBox
       Me.SuspendLayout()
       "
       "Label2
       "
       Me.Label2.Location = New System.Drawing.Point(16, 40)
       Me.Label2.Name = "Label2"
       Me.Label2.Size = New System.Drawing.Size(60, 12)
       Me.Label2.TabIndex = 13
       Me.Label2.Text = "File Types:"
       "
       "Label1
       "
       Me.Label1.Location = New System.Drawing.Point(16, 16)
       Me.Label1.Name = "Label1"
       Me.Label1.Size = New System.Drawing.Size(40, 12)
       Me.Label1.TabIndex = 12
       Me.Label1.Text = "Path:"
       "
       "txtTypes
       "
       Me.txtTypes.Location = New System.Drawing.Point(76, 36)
       Me.txtTypes.Name = "txtTypes"
       Me.txtTypes.Size = New System.Drawing.Size(264, 21)
       Me.txtTypes.TabIndex = 11
       Me.txtTypes.Text = "*.xls"
       "
       "lstNewFiles
       "
       Me.lstNewFiles.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
                   Or System.Windows.Forms.AnchorStyles.Left) _
                   Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
       Me.lstNewFiles.Location = New System.Drawing.Point(12, 108)
       Me.lstNewFiles.Name = "lstNewFiles"
       Me.lstNewFiles.Size = New System.Drawing.Size(328, 199)
       Me.lstNewFiles.TabIndex = 10
       "
       "cmdStop
       "
       Me.cmdStop.Location = New System.Drawing.Point(228, 68)
       Me.cmdStop.Name = "cmdStop"
       Me.cmdStop.Size = New System.Drawing.Size(112, 24)
       Me.cmdStop.TabIndex = 9
       Me.cmdStop.Text = "Stop Watching"
       "
       "cmdStart
       "
       Me.cmdStart.Location = New System.Drawing.Point(108, 68)
       Me.cmdStart.Name = "cmdStart"
       Me.cmdStart.Size = New System.Drawing.Size(112, 24)
       Me.cmdStart.TabIndex = 8
       Me.cmdStart.Text = "Start Watching"
       "
       "txtDir
       "
       Me.txtDir.Location = New System.Drawing.Point(76, 12)
       Me.txtDir.Name = "txtDir"
       Me.txtDir.Size = New System.Drawing.Size(264, 21)
       Me.txtDir.TabIndex = 7
       Me.txtDir.Text = "d:\orders"
       "
       "Watcher
       "
       Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
       Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
       Me.ClientSize = New System.Drawing.Size(352, 318)
       Me.Controls.Add(Me.Label2)
       Me.Controls.Add(Me.Label1)
       Me.Controls.Add(Me.txtTypes)
       Me.Controls.Add(Me.lstNewFiles)
       Me.Controls.Add(Me.cmdStop)
       Me.Controls.Add(Me.cmdStart)
       Me.Controls.Add(Me.txtDir)
       Me.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
       Me.Name = "Watcher"
       Me.Text = "Watcher"
       Me.ResumeLayout(False)
       Me.PerformLayout()
   End Sub
   Friend WithEvents Label2 As System.Windows.Forms.Label
   Friend WithEvents Label1 As System.Windows.Forms.Label
   Friend WithEvents txtTypes As System.Windows.Forms.TextBox
   Friend WithEvents lstNewFiles As System.Windows.Forms.ListBox
   Friend WithEvents cmdStop As System.Windows.Forms.Button
   Friend WithEvents cmdStart As System.Windows.Forms.Button
   Friend WithEvents txtDir As System.Windows.Forms.TextBox
   Private WithEvents Watch As New FileSystemWatcher()
   Private Sub cmdStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStart.Click
       Watch.Path = txtDir.Text
       Watch.Filter = txtTypes.Text
       Watch.EnableRaisingEvents = True
   End Sub
   Private Sub cmdStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStop.Click
       Watch.EnableRaisingEvents = False
   End Sub
   Private Sub Watch_Created(ByVal sender As Object, ByVal e As System.IO.FileSystemEventArgs) Handles Watch.Created
       lstNewFiles.Invoke(New UpdateListDelegate(AddressOf UpdateList), e.Name)
   End Sub
   Private Delegate Sub UpdateListDelegate(ByVal name As String)
   Private Sub UpdateList(ByVal name As String)
       lstNewFiles.Items.Add("New file: " & Name)
   End Sub

End Class


 </source>