Gli oggetti visti nel capitolo precedentederivano dagli oggetti JavaScript. Questi che vediamo ora sono gli oggetti del VBScript. Grazie a questi oggetti il VBScript si dimostra un linguaggio più completo del JavaScript anche se quest'ultimo resta quello più compatibile dai browser.
Per utilizzare un oggetto bisogna creare un'istanza cioè dichiararlo ed associarli un nome. Per farlo si usa il comando CreateObject. La sintassi per creare un oggetto è:
Set nomeoggetto = CreateObject( "tipo di oggetto")
L'oggetto FileSystemObject permette di lavorare con i file e le cartelle dell'hard disk. Questo oggetto serve a creare altri oggetti che saranno la cartella, il file o il drive. Nel esempio seguente diamo un occhiata al'hard disk:
<script language="vbscript">
Function ShowFile(folderspec)
Dim fso, folder, file, FileItem
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(folderspec)
Set file = folder.Files
For each FileItem in file
document.write FileItem & "<br/>"
Next
End Function
ShowFile("c:")
</script>
L'avvio di questa funzione in una pagina HTML ci avverte che si sta creando una situzione di pericolo. Infatti la seguente funziona visualizza i file ma come vedremo esistono anche comandi per cancellare i file e le cartelle!
Tornando alla funzione ShowFile, per prima cosa è stato creato l'oggetto fso, cioè l'oggetto chepermette di lavorare con il file system. Con il comando successivo "Set folder = fso.GetFolder(folderspec)" ho creato l'oggetto cartella ed infine con "Set file = folder.Files" creo l'oggetto file.
Il resto del programma usa metodi e proprietà di questi oggetti, cheverranno ora decritti
Il FileSystemObject ha solo una proprietà, Drive, che restituisce l'elenco di tutti i drive disponibili sul sistema.
Esistono invece numerosi metodi per lavorare con file e cartelle:
DriveExists(lettera drive) restituisce
True se la lettera del dirve specificato esiste.
GetDrive (lettera drive) restituisce un oggetto Drive corrispondente
alla lettera specificata
GetDriveName (lettera drive) restituisce il nome del Drive corrispondente
alla lettera specificata
BuildPath(percorso, nome) aggiunge file o cartelle specificate da nome
al percorso corrente
CopyFolder(origine, destinazione, sovrascrivi) copia una cartella dalla
posizione origine a quella destinazione, se esiste già viene sovrascritta
in funzione del parametro sovrascrivi
CreateFolder(nome cartella) crea una cartella
DeleteFolder(nome cartella, force) cancella una cartella, con il parametro
force=true cancello anche le cartelle in sola lettura
FolderExists(nome cartella) restituisce true o false se la cartella specificata
esiste o no
GetFolder(cartella) restituisce un oggetto cartella corrispondente alla
cartella specificata.
GetParentFolderName(cartella) restituisce il nome della cartella superiore
a quella specificata
MoveFolder(origine, destinazione) sposta una cartella
CopyFile(origine,destinazione, sovrascrivi) copia un file dalla posizione
origine a quella destinazione, se esiste già viene sovrascritta in funzione
del parametro sovrascrivi
CreateTextFile(persorso, sovrascrivi, unicode) crea un un file di testo
nel percorso specificato. Il parametro sovrascrivi, permette di sovrascivere
un file già esistente, il parametro unicode permette di salvare in formato
ASCII o Unicode
DeleteFile(nome file, force) cancella un file, con il parametro force=true
cancello anche i file in sola lettura
FileExists(percorso file) restituisce true o false se il file specificato
esiste o no
GetExtensionName(percorso) restituisce l'estensione del file
GetFile(percorso) restituisce un oggetto file corrispondente al file
specificato
MoveFile(origine, destinazione) sposta un file
OpenTextFile(nome file, iomode, crea, formato) crea o apre un file di
testo utilizzando iomode per leggere, scrivere o aggiungere in formato ASCII
o Unicode.
Il seguente codice crea unFileSystemObject ed elenca i drive presenti nella macchina locale:
Dim fso
Dim disco
'Creazione dell'oggetto FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
document.write "I dischi su questo computer sono:"
For Each disco in fso.Drives
document.write "<BR>Drive =" & disco
next