Salve a tutti,
tramite la classe "OpenFileDialog" copio un file da una cartella di origine ad una di destinazione.

Il problema nasce quando cerco di copiare LO STESSO FILE, situato nella stessa cartella di origine, in questo caso mi viene restituito il seguente errore:

"The process cannot access the file *** because it is being used by another process"

Gli asterischi indicano il nome del file che ho selezionato. Io inserisco l'istruzione "try - catch" e il sistema mi riporta l'errore sopra citato, però poi mi permette di copiare ugualmnete il file.

Vi chiedo allora come ovviare al problema, ovvero non far comparire questo messaggio di errore che poi alla fine non blocca l'esecuzione del programma, ma è comunque fastidioso. Vi riporto sotto il codice che uso e vi ringrazio per ogni suggerimento vogliate darmi:

codice:
With OpenFileDialog

    .CheckFileExists = True
    .ShowReadOnly = False
    .Filter = "Tutti i File|*.*|Jpeg File (*.jpg)|*.jpg|Bitmap Files (*.bmp)|*.bmp|Gif File (*.gif)|*.gif"
    .FilterIndex = 2

    If .ShowDialog = DialogResult.OK Then

       ' Estrapola ed assegna il nome del file
       Dim PathImmagine As String
       Dim LunghezzaTotale As Integer
       Dim LunghezzaPath As Integer

       LunghezzaTotale = Len(.FileName)
       TaglioInizio = .FileName.LastIndexOfAny(strChar) + 1
       PathImmagine = .FileName.Substring(0, TaglioInizio)
       LunghezzaPath = Len(PathImmagine)
       NomeImmagine = .FileName.Substring(LunghezzaPath, (LunghezzaTotale - LunghezzaPath))

       Try

          Dim FileOrigine As String = .FileName
          Dim FileDestinazione As String = PercorsoImmagine & "/" & NomeImmagine
          System.IO.File.Copy(FileOrigine, FileDestinazione, True)

       Catch ex As Exception

          Dim strMsg As String
          strMsg = "Errore di Sistema!" & vbCrLf
          strMsg += ex.Message
          MsgBox(strMsg, MsgBoxStyle.OKOnly.Critical)

       End Try

    End If

End With