Мониторинг папки и отправка на почту появившихся файлов - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Привет всем! У меня встала задача написать программу для мониторинга файлов и отправки найденных файлов на электронную почту. Суть в чем. Каждый день в определенной папке(скажем D:\test_folder)создается папка с текущей датой (формата yymmdd). С этим я справился. вот код:
Листинг программы
  1. Public watchfolder As FileSystemWatcher
  2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  3. watchfolder = New System.IO.FileSystemWatcher()
  4. watchfolder.Path = "d:\test_folder"
  5. watchfolder.NotifyFilter = IO.NotifyFilters.DirectoryName
  6. watchfolder.NotifyFilter = watchfolder.NotifyFilter Or IO.NotifyFilters.FileName
  7. watchfolder.NotifyFilter = watchfolder.NotifyFilter Or IO.NotifyFilters.Attributes
  8. AddHandler watchfolder.Changed, AddressOf logchange
  9. AddHandler watchfolder.Created, AddressOf logchange
  10. AddHandler watchfolder.Deleted, AddressOf logchange
  11. AddHandler watchfolder.Renamed, AddressOf logrename
  12. watchfolder.EnableRaisingEvents = True
  13. End Sub
  14. Private Sub logchange(ByVal source As Object, ByVal e As System.IO.FileSystemEventArgs)
  15.  
  16. If e.ChangeType = IO.WatcherChangeTypes.Created Then
  17. Dim fileCreatedDate As DateTime = File.GetCreationTime(e.FullPath)
  18. ' Console.WriteLine("file created: " + fileCreatedDate)
  19. MsgBox("Папка " & e.FullPath & " была создана" & vbCrLf & " Дата и время создания папки: " & fileCreatedDate)
  20. End If
  21. If e.ChangeType = IO.WatcherChangeTypes.Deleted Then
  22. Dim fileCreatedDate As DateTime = File.GetCreationTime(e.FullPath)
  23. MsgBox("Папка " & e.FullPath & " была удалена" & vbCrLf & " Дата и время удаления папки: " & fileCreatedDate)
  24. End If
  25. End Sub
  26. Public Sub logrename(ByVal source As Object, ByVal e As System.IO.RenamedEventArgs)
  27. MsgBox("Папка" & e.OldName & " была переименована. Новое имя папки " & e.Name & vbCrLf)
  28. End Sub
в этой папке с текущем днем создается еще одна папка(имя папки - post), в которую и сыпятся со стороннего приложения файлы, которые и необходимо отправлять на почту. как отправлять на почту тоже разобрался:
Листинг программы
  1. Imports System.Net.Mail
  2. Imports System.Text
  3. Public Class Form3
  4. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  5. Dim email As New MailMessage
  6. Dim smtp As SmtpClient
  7. smtp = New SmtpClient("smtp.mail.ru") ' Пример smtp.mail.ru
  8. smtp.Credentials = New Net.NetworkCredential("removed@mail.ru", "password1")
  9. email.From = New MailAddress("removed@mail.ru")
  10. email.To.Add(New MailAddress("removed@mail.ru"))
  11. email.Body = "test_вложения"
  12. email.Subject = "test_вложения"
  13. email.Attachments.Add(New System.Net.Mail.Attachment("d:\rasp_p04ta\expl_05cubizi.arj"))
  14. smtp.Send(email)
  15. End Sub
  16. End Class
Но отправлять нужно не все файлы которые появляются в данной папке post, а все кроме определенных, то есть надо создать как я понимаю какой-то шаблон файлов, которых не нужно отправлять.(например, это файлы содержащие в своих именах: klas, lic,ort) - эти файлы отправлять не нужно, а остальное все отправляется на почту. помогите мне пожалуйста допилить код под мою поставленную задачу. надеюсь, что объяснил понятно. заранее очень благодарен и большое спасибо за вашу помощь!!!

Решение задачи: «Мониторинг папки и отправка на почту появившихся файлов»

textual
Листинг программы
  1.  Private Sub logchange(ByVal source As Object, ByVal e As System.IO.FileSystemEventArgs)
  2.  
  3.         If e.ChangeType = IO.WatcherChangeTypes.Created Then
  4.             'MsgBox("Папка " & e.FullPath & " была создана" & vbCrLf)
  5.         End If
  6.         Try
  7.             If IO.Directory.Exists(e.FullPath) = False Then
  8.  
  9.                 Dim file As String = IO.Path.GetDirectoryName(e.FullPath)
  10.                 Get_Directories(file)
  11.        
  12.         Else
  13.                 Get_Directories(e.FullPath)
  14.         End If
  15.         Catch ex As Exception
  16.         End Try
  17.     End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут