VBA Files & Directories – File System Object

File System Object

Questa è una libreria aggiuntiva che offre un accesso chiaro e orientato agli oggetti a tutte le funzioni comuni di file e directory.
Questo oggetto non fa parte della libreria di Office e richiede l’aggiunta di un riferimento al tuo progetto.
SS – Finestra di dialogo dei riferimenti
Una volta aggiunto il riferimento puoi usare il Browser degli oggetti per saperne di più sugli oggetti.
Il Microsoft Scripting Runtime è una libreria che può essere aggiunta ad un progetto usando (Strumenti > Riferimenti).
Questa libreria si trova in C:\Windows\System32\scrrun.dll

Dim objFSOFileSystemObject As Scripting.FileSystemObject 
Set objFSOFileSystemObject = CreateObject("Scripting.FileSystemObject")

Tipi di oggetti

FileSystemObject – Questo è anche un oggetto di livello superiore usato per accedere a drive, cartelle e file.
Drive – Appartiene alla collezione Drives e si riferisce a particolari drive locali o di rete.
Folder – Questo oggetto si riferisce a una particolare cartella.
File – Questo oggetto si riferisce a un particolare file.
TextStream – Questo oggetto si riferisce ad un flusso di testo che può essere letto, scritto o aggiunto ad un file di testo.
Dictionary – Questo è l’oggetto di livello superiore

Oggetto FileSystemObject

L’oggetto FileSystemObject è l’oggetto che effettivamente ti dà accesso ai file di un sistema usando 27 metodi e una sola proprietà.
Quando crei cartelle devi crearle, un livello alla volta. Non puoi creare una cartella e una sottocartella allo stesso tempo.
Dovresti sempre usare i nomi dei server invece delle lettere, poiché PC diversi possono avere lettere diverse assegnate
Non cercheremo di definire tutti i metodi, ma ne rivedremo alcuni quando li useremo negli esempi di codice poco più avanti.
Inoltre, FileSystemObject è usato per restituire un oggetto che può creare, leggere e modificare file di testo (ASCII e Unicode).
Una volta che avete una nuova istanza di FileSystemObject, potete lavorare con unità, cartelle e file, che forniscono un facile accesso al file system e semplificano il processo di lettura e scrittura di un file di testo.

Dim objFSOFileSystemObject As New Scripting.FileSystemObject 

Alternativamente

Dim objFSOFileSystemObject As Scripting.Dictionary 
Set objFSOFileSystemObject = New Scripting.FileSystemObject

Alternativamente

Dim objFSOFileSystemObject As Object 
Set objFSOFileSystemObject = CreateObject("Scripting.FileSystemObject")

Importante

Purtroppo il FileSystemObject non è adatto a lavorare con dati binari. Per questo dovete usare le funzioni tradizionali.