Tagliare File – Codice VB.NET
Tagliare file: ovvero come fare a gestire lo spostamento di qualsiasi file, con controllo dei byte effettivamente copiati mediante codice VB.NET.
Introduzione
Il listato seguente permette di tagliare 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 lo spostamento 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_TAGLIA (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 spostare un file con pochi passaggi.
Public Function IngAC_FILE_TAGLIA(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
Try
Kill(File_Origine)
Return Contatore_Byte
Catch
IngAC_FILE_TAGLIA = -1
End Try
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
Try
Kill(File_Origine)
Return Dimensione_File
Catch
IngAC_FILE_TAGLIA = -1
End Try
End If
End Function
Come tagliare file da codice VB.NET
La funzione IngAC_FILE_TAGLIA ha come input:
- File_Origine che è il file che si vuole spostare, che ha qualsiasi estensione.
- File_Destinazione che invece è il percorso e il nome del file da spostare, 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 movimentazione del file nella posizione desiderata; la funzione restituisce la dimensione del file tagliato 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, Kill() eliminerà definitivamente il file. ricordate di inserire Imports System.IO per poter usare la funzione IngAC_FILE_TAGLIA.
Nota: al posto di Kill() si potrebbe inserire File.Delete() che non supporta l’uso di caratteri jolly oppure My.Computer.FileSystem.DeleteFile() che permette la scelta di spostare i file nel cestino di windows.
Link utili:
- MSDN -> Open File
- MSDN -> FileStream
- MSDN -> Kill()
- MSDN -> File.Delete()
- MSDN -> DeleteFile()
- Visual Studio Microsoft
- Download Gratuiti per lo Sviluppo Software Microsoft