Мониторинг папки и отправка на почту появившихся файлов - Visual Basic .NET
Формулировка задачи:
Привет всем!
У меня встала задача написать программу для мониторинга файлов и отправки найденных файлов на электронную почту.
Суть в чем. Каждый день в определенной папке(скажем D:\test_folder)создается папка с текущей датой (формата yymmdd). С этим я справился. вот код:
в этой папке с текущем днем создается еще одна папка(имя папки - post), в которую и сыпятся со стороннего приложения файлы, которые и необходимо отправлять на почту.
как отправлять на почту тоже разобрался:
Но отправлять нужно не все файлы которые появляются в данной папке post, а все кроме определенных, то есть надо создать как я понимаю какой-то шаблон файлов, которых не нужно отправлять.(например, это файлы содержащие в своих именах: klas, lic,ort) - эти файлы отправлять не нужно, а остальное все отправляется на почту.
помогите мне пожалуйста допилить код под мою поставленную задачу. надеюсь, что объяснил понятно. заранее очень благодарен и большое спасибо за вашу помощь!!!
Листинг программы
- Public watchfolder As FileSystemWatcher
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- watchfolder = New System.IO.FileSystemWatcher()
- watchfolder.Path = "d:\test_folder"
- watchfolder.NotifyFilter = IO.NotifyFilters.DirectoryName
- watchfolder.NotifyFilter = watchfolder.NotifyFilter Or IO.NotifyFilters.FileName
- watchfolder.NotifyFilter = watchfolder.NotifyFilter Or IO.NotifyFilters.Attributes
- AddHandler watchfolder.Changed, AddressOf logchange
- AddHandler watchfolder.Created, AddressOf logchange
- AddHandler watchfolder.Deleted, AddressOf logchange
- AddHandler watchfolder.Renamed, AddressOf logrename
- watchfolder.EnableRaisingEvents = True
- End Sub
- Private Sub logchange(ByVal source As Object, ByVal e As System.IO.FileSystemEventArgs)
- If e.ChangeType = IO.WatcherChangeTypes.Created Then
- Dim fileCreatedDate As DateTime = File.GetCreationTime(e.FullPath)
- ' Console.WriteLine("file created: " + fileCreatedDate)
- MsgBox("Папка " & e.FullPath & " была создана" & vbCrLf & " Дата и время создания папки: " & fileCreatedDate)
- End If
- If e.ChangeType = IO.WatcherChangeTypes.Deleted Then
- Dim fileCreatedDate As DateTime = File.GetCreationTime(e.FullPath)
- MsgBox("Папка " & e.FullPath & " была удалена" & vbCrLf & " Дата и время удаления папки: " & fileCreatedDate)
- End If
- End Sub
- Public Sub logrename(ByVal source As Object, ByVal e As System.IO.RenamedEventArgs)
- MsgBox("Папка" & e.OldName & " была переименована. Новое имя папки " & e.Name & vbCrLf)
- End Sub
Листинг программы
- Imports System.Net.Mail
- Imports System.Text
- Public Class Form3
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- Dim email As New MailMessage
- Dim smtp As SmtpClient
- smtp = New SmtpClient("smtp.mail.ru") ' Пример smtp.mail.ru
- smtp.Credentials = New Net.NetworkCredential("removed@mail.ru", "password1")
- email.From = New MailAddress("removed@mail.ru")
- email.To.Add(New MailAddress("removed@mail.ru"))
- email.Body = "test_вложения"
- email.Subject = "test_вложения"
- email.Attachments.Add(New System.Net.Mail.Attachment("d:\rasp_p04ta\expl_05cubizi.arj"))
- smtp.Send(email)
- End Sub
- End Class
Решение задачи: «Мониторинг папки и отправка на почту появившихся файлов»
textual
Листинг программы
- Private Sub logchange(ByVal source As Object, ByVal e As System.IO.FileSystemEventArgs)
- If e.ChangeType = IO.WatcherChangeTypes.Created Then
- 'MsgBox("Папка " & e.FullPath & " была создана" & vbCrLf)
- End If
- Try
- If IO.Directory.Exists(e.FullPath) = False Then
- Dim file As String = IO.Path.GetDirectoryName(e.FullPath)
- Get_Directories(file)
- Else
- Get_Directories(e.FullPath)
- End If
- Catch ex As Exception
- End Try
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д