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

					
					
					
						
  Rispondi quotando
						
						
  ... sarò l'ottavo nano: tontolo!
						
						