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.

[codesyntax lang=”vbnet”]

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:

Copiare File - Codice VB.NET

Copiare File – Codice VB.NET

You may also like...