|
ASP: la guida introduttiva
Capitolo 4 - utilizzo degli oggetti ActiveX
4.0 Introduzione
agli ActiveX
4.1 Utilizzo
di un ActiveX
4.2 Scripting.FileSystemObject
4.3 Un
esempio di utilizzo del File System
4.0 - Introduzione agli ActiveX
Nelle pagine precedenti si è già accennato agli oggetti basati
sulla tecnologia ActiveX (cfr.
Capitolo 2). In questo capitolo si intende introdurre il lettore
all'utilizzo e alla comprensione di questi oggetti. Alcuni
ActiveX, scelti tra i più diffusi e standardizzati, verranno
presi in esame all'interno della guida stessa.
Come già detto ASP, insieme ai suoi linguaggi di scripting, non
fornisce nativamente funzioni avanzate. Con puro codice JScript,
infatti, non è possibile accedere ad un database, oppure
scrivere un file di testo, oppure ancora inviare una e mail
attraverso un server di posta elettronica o collegarsi ad un
altro PC sparso per il mondo alla ricerca di informazioni. Per
questo motivo molto di ASP è basato sui suoi componenti esterni,
l'utilizzo dei quali rende possibile tutte le cose appena
citate. Sostanzialmente sotto il nome di ActiveX vanno una serie
di tecnologie che permettono ad un o ad una sua parte
di interagire con altre parti esterne, indipendentemente dal
linguaggio con il quale esse sono state realizzate. ActiveX, a
sua volta, è un sottoinsieme delle classi COM
(Component Object Model).
In questa guida non sarà illustrata la creazione di un
componente ActiveX. Se si è interessati a ciò è bene far
riferimento a avanzati di un qualche linguaggio
appartenente alla famiglia "Visual", sempre di Microsoft. Gli
ActiveX più efficienti sono solitamente realizzati con Visual C++.
Qui ci si limiterà solo all'uso di essi all'interno dei
documenti ASP.
4.1 - Utilizzo di un ActiveX
Con
JScript richiamare un ActiveX è estremamente semplice, mediante
l'utilizzo dell'oggetto ActiveXObject.
Il compito di questo oggetto è quello di attivare e restituire
un riferimento proprio ad un componente ActiveX. La sintassi
necessaria ricalca la seguente:
var rif_oggetto = new ActiveXObject("nomeserver.nometipo"[,"posizione"]);
I
parametri passati all'oggetto vanno così interpretati:
-
nomeserver è il nome dell'applicazione che fornisce
l'oggetto. Questo parametro è
obbligatorio
-
nometipo è il nome della classe dell'oggetto da
attivare. Anche questo parametro è
obbligatorio
-
posizione indica il nome del server nella rete in cui
l'oggetto deve venire creato. Questo parametro è
facoltativo
Una
volta creato un oggetto mediante l'utilizzo di ActiveXObject
sarà possibile usufruire di esso utilizzando il riferimento
restituito:
rif_oggetto.proprietà
rif_oggetto.metodo(eventuali parametri)
4.2 - Scripting.FileSystemObject
Il
primo oggetto ActiveX al quale rivolgeremo la nostra attenzione
sarà Scripting.FileSystemObject, molto
probabilmente l'oggetto ActiveX più diffuso ed utilizzato nelle
pagine ASP insieme a quelli della famiglia
ADODB.
Scripting.FileSystemObject estende il linguaggio di scripting
utlizzato fornendolo di una semplice interfaccia utile per
interagire con il File System del server. In poche parole grazie
a questo ActiveX è possibile leggere e scrivere file sull'hard
disk del server, creare cartelle, eliminare file che non servono
più, ottenere la lista di tutti i file contenuti in una
cartella, gestire file di testo o binari e tanto altro. Inoltre
a questo oggetto principale solo collegate anche altre classi di
oggetti utili per descrivere i file, le cartelle, i drive e gli
stream. Nel corso della guida ci troveremo più volte davanti al
loro utilizzo e, dunque, avremo occasione di approfondire
l'argomento.
Davvero innumerevoli sono i metodi messi a disposizione da
Scripting.FileSystemObject:
|
Metodi |
|
|
|
|
BuildPath |
Aggiunge un nome alla fine di un percorso esistente |
|
CopyFile |
Copia uno o più file da una posizione ad un'altra |
|
CopyFolder |
Copia una cartella da una posizione ad un'altra |
|
CreateFolder |
Genera una nuova cartella |
|
CreateTextFile |
Crea un file di testo e restituisce un oggetto TextStream
utile per lavorare con il file creato |
|
DeleteFile |
Cancella un file |
|
DeleteFolder |
Cancella una cartella |
|
DriveExists |
Restituisce un booleano che indica se il drive specificato
esiste |
|
FileExists |
Restituisce un booleano che indica se il file specificato
esiste |
|
FolderExists |
Restituisce un booleano che indica se la cartella
specificata esiste |
|
GetAbsolutePathName |
Restituisce un percorso completo a partire da uno ambiguo |
|
GetBaseName |
Restituisce il nome di un file privo dell'estensione |
|
GetDrive |
Restituisce un oggetto Drive relativo all'unità di un
percorso specificato |
|
GetDriveName |
Restituisce una stringa contenente il nome dell'unità di un
percorso specificato |
|
GetExtensionName |
Restituisce una stringa contenente l'estensione di un file
specificato |
|
GetFile |
Restituisce un oggetto File relativo al percorso
specificato |
|
GetFileName |
Restituisce l'ultimo componente del percorso specificato che
non fa parte della specifica di unità. |
|
GetFolder |
Restituisce un oggetto Folder relativo al percorso
specificato |
|
GetParentFolderName |
Restituisce una stringa contenente il nome della cartella
principale dell'ultimo componente del percorso specificato. |
|
GetSpecialFolder |
Restituisce la cartella speciale specificata. Cartelle
speciali sono ad esempio quelle contenenti file temporanei,
file di sistema ecc. |
|
GetTempName |
Restituisce un nome di file o cartella generato in modo
casuale, utile per eseguire operazioni che richiedono un
file o una cartella temporanea |
|
MoveFile |
Sposta uno o più file in una diversa posizione |
|
MoveFolder |
Sposta una cartella in una diversa posizione |
|
OpenTextFile |
Apre il file specificato e restituisce un oggetto
TextStream che può essere utilizzato per leggere il
file, scrivere nel file o aggiungere testo alla fine del
file |
|
|
|
|
Proprietà |
|
|
|
|
Drives |
Un insieme di oggetti Drive disponibili nel computer
locale |
|
|
|
4.3 - Un esempio di utilizzo del File System
Vediamo ora come utilizzare praticamente
Scripting.FileSystemObject attraverso un primo semplice esempio:
<%@ LANGUAGE = JScript %>
<%
var fo = new ActiveXObject("Scripting.FileSystemObject");
var text_stream = fo.CreateTextFile(Server.MapPath("prova.txt"));
text_stream.WriteLine("Prova di scrittura su file di testo");
text_stream.Close();
%>
<a href="prova.txt">Ho appena creato un file di testo!
Clicca!</a>
Forse non tutti i passaggi effettuati risulteranno chiari sin da
subito, in quanto ancora non sono stati visitati l'oggetto
TextStream e l'oggetto built-in
Server. L'esempio in questione,
comunque, utilizza l'ActiveX discusso per generare un file di
testo nominato prova.txt che viene
salvato nella stessa cartella dove risiede lo pagina ASP. Il
prossimo capitolo si occuperà di approfondire la tematica della
lettura/scrittura dei file di testo, intimamente legata con il
File System. |