Copiare File – Codice VB.NET
Copiare file: ovvero come fare a gestire la copia di qualsiasi file, con controllo dei byte effettivamente copiati mediante codice VB.NET.
Introduzione
Il listato seguente permette di copiare file, mediante l’utilizzo dello stream e del buffer. Per il programmatore potrebbe essere molto utile avere il codice già pronto e tale da gestire la copia di un file, tenendo d’occhio il progresso dell’operazione e avendo l’applicazione non bloccata dal processo di copiatura. La funzione che si occupa del tutto è: IngAC_FILE_COPIA (ByVal File_Origine As String, ByVal File_Destinazione As String,
Optional Sovrascrivi_Destinazione As Boolean = False) As Long. Grazie ad essa saremo in grado di copiare un file con pochi passaggi.
REM COPIARE FILE Public Function IngAC_FILE_COPIA(ByVal File_Origine As String, ByVal File_Destinazione As String, Optional Sovrascrivi_Destinazione As Boolean = False) As Long Try If Sovrascrivi_Destinazione = True Then Dim Buffer_Byte = 256 Dim Buffer(Buffer_Byte) As Byte Dim Contatore_Byte As Long = 0 Dim Dimensione_File As Long = 0 Using Stream_Origine As FileStream = File.Open(File_Origine, FileMode.Open) Using Stream_Destinazione As FileStream = File.Create(File_Destinazione) Dimensione_File = Stream_Origine.Length '-1 Dim Lettura_Byte As Integer While Stream_Origine.Position < Dimensione_File Lettura_Byte = (Stream_Origine.Read(Buffer, 0, Buffer_Byte)) Contatore_Byte = Stream_Origine.Position Stream_Destinazione.Write(Buffer, 0, Lettura_Byte) Application.DoEvents() End While End Using End Using Return Contatore_Byte Else Dim Dimensione_File As Long = 0 Using Stream_Destinazione As FileStream = File.Open(File_Destinazione, FileMode.Open) Dimensione_File = Stream_Destinazione.Length End Using Return Dimensione_File End If Catch MsgBox(Err.Description) IngAC_FILE_COPIA = -1 End Try End Function
[/codesyntax]
Come copiare file da codice VB.NET
La funzione IngAC_FILE_COPIA ha come input:
- File_Origine che è il file che si vuole copiare, che ha qualsiasi estensione.
- File_Destinazione che invece è il percorso e il nome del file da copiare, con uguale o diversa estensione, come specificato dall’utente;
- Optional Sovrascrivi_Destinazione As Boolean = False : è un parametro opzionale che permette o nega la sovrascrittura del file di destinazione.
Come output si avrà la copiatura del file nella posizione desiderata; la funzione restituisce la dimensione del file copiato se è tutto ok, oppure il valore -1, se qualcosa è andato storto.
Il funzionamento è semplicissimo: si aprono gli stream per i due file, si legge da file origine, si immettono i dati nel buffer e si scrivono i dati del buffer nel file di destinazione. Infine, ricordate di inserire Imports System.IO per poter usare la funzione IngAC_FILE_COPIA.
Link utili:
- MSDN -> Open File
- MSDN -> FileStream
- Visual Studio Microsoft
- Download Gratuiti per lo Sviluppo Software Microsoft