FileSystemWatcher на сетевом диске - PullRequest
2 голосов
/ 23 января 2020

Я пытаюсь посмотреть папку моей «Камеры» на моем телефоне. Это телефон android, подключенный к моему P C через сервер WebDAV, который позволяет сопоставить телефон как драйвер; это работает отлично. (Установленная папка - «Камера» в DCIM.) Когда я делаю снимок, он должен вызывать саб в моей программе. Полгода go все работало нормально, сейчас я продолжаю развивать свою программу, и она не работает. (Я только что переустановил свой P C, думаю, это единственное, что я изменил.) Я читал о многих проблемах с файловой системой, наблюдаемой на сетевых дисках.

  • Я уже пробовал это с другим телефоном и P C, но мне не повезло.
  • Работает, когда я пробую его с путем "C: \"
  • Программа может видеть подключенный диск / папку, она не останавливается на проверочном коде.
  • Также пробовал копировать и вставлять файлы по указанному пути вместо фотографирования ...

Что-нибудь добавить или изменить?

Вот мой пример кода для иллюстрации ...:

Imports System.IO
Public Class Form1
    Public watchfolder As FileSystemWatcher
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim path As String
        path = "Z:\"
        watchfolder = New System.IO.FileSystemWatcher()
        watchfolder.Path = path

        If (Not System.IO.Directory.Exists(path)) Then MsgBox("Wrong path.")

        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.Error, AddressOf erroreventhandler 'I'm trying to read the error with this...

        watchfolder.EnableRaisingEvents = True
    End Sub
    Private Sub logchange(ByVal source As Object, ByVal e As System.IO.FileSystemEventArgs)
        MsgBox("This is the place where I'll call one sub in case of modification.")
    End Sub
    Sub erroreventhandler(sender As Object, e As ErrorEventArgs)
        'this is to stop the program in case of error... 
        ''it stops when I run the program on a mapped drive. (not on "C:\")
        '''I could provide the error texts, I don't really familiar with them...
        Stop
    End Sub
End Class
...