Файловая система перестает работать, когда я использую SaveAs вместо Copy Paste - PullRequest
0 голосов
/ 19 апреля 2020

Я создал небольшой код в VB. net Я использовал FileSystemWatcher, чтобы просто скопировать вновь созданные файлы в папке в другую папку, он отлично работает, когда я перетаскиваю файлы в контролируемую папку (копировать, вставить), но когда я использую SaveAs из любого приложения и сохраняю файл в отслеживаемой папке, он работает только для первого файла, затем он перестает что-либо делать, даже если я попытался снова скопировать-вставить, он не будет работать, пока я не закрою приложение и запустите его снова. Я очень ценю ваш совет, чтобы решить эту проблему,

Вот код:

Private Sub Fsw1_Created(ByVal sender As Object, ByVal e As System.IO.FileSystemEventArgs) Handles Fsw1.Created
        Dim isLock As Boolean
        Dim fname, fpath, fname_no_ext, ext_only As String
        Dim dateString, first_part, fnameArr() As String
        dateString = DateTime.Now.Second & DateTime.Now.Minute & DateTime.Now.Day.ToString & DateTime.Now.Month.ToString & DateTime.Now.Year.ToString


        fname = Path.GetFileName(e.FullPath.ToString)


        fpath = npath & fname
        fname_no_ext = Path.GetFileNameWithoutExtension(fname)
        ext_only = Path.GetExtension(fname)



tstAgain:


            isLock = False
            Try
                Using f As New IO.FileStream(e.FullPath.ToString, FileMode.Open, FileAccess.ReadWrite, FileShare.None)
                End Using
            Catch Ex As Exception
                isLock = True

            End Try
            If isLock = True Then
                Threading.Thread.Sleep(1000)
                GoTo tstAgain
            End If



                    File.Copy(e.FullPath.ToString, fpath, True)
                    My.Computer.FileSystem.RenameFile(fpath, fname_no_ext & "_" & dateString & "_" & room_name & ext_only)


    End Sub

...