Lo scopo di questa applicazione è quello di visualizzare il contenuto dell'HardDisk, come fa esplora risorse. Il primo passo è quello di visualizzare le cartelle e i file contenute
nella root:
<SCRIPT LANGUAGE=vbscript>
<!--
Dim Drive,folder, subfolder,elemFolder
path="C:"
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(path)
Set subfolder = folder.Subfolders
document.write path & "<br>"
For each elemFolder in subfolder
document.write " <b>" & replace(lcase(elemFolder),lcase(path),"") &
"</b><br>"
next
Set files = folder.files
For each elemFile in files
document.write " " & replace(lcase(elemFile),lcase(path),"") &
"<br>"
next
//-->
</SCRIPT>
Nella variabile path è inserito il nome della cartella da esaminare,
in questo caso abbiamo scelto la root del disco C.
Vengono creati gli oggetti folder e subfolder: quest'ultimo conterrà
tutte le cartelle contenute nella cartella folder. Per visualizzare le varie
sottocartelle si sfrutta un ciclo For Each. Il path di ogni sottocartella, attraverso
il comando replace, viene liberato della parte contenente il nome della cartella
superiore.
Lo stesso principio è adottato per leggere i file contenuti nel path.
Per distinguere i file dalle cartelle, queste ultime sono in grassetto.
Risultato dello script (riferito, naturalmente, al mio hard disk):
C:
documents and settings
inetpub
program files
recycler
winnt
autoexec.bat
boot.bak
boot.ini
config.sys
io.sys
msdos.sys
ntdetect.com
ntldr
pagefile.sys
Lo script può essere inserito in una funzione che riceve come parametro
il path. Ora non resta che rendere i nomi delle cartelle cliccabili. Cliccando
sul nome della cartella, il path della cartella viene passato alla funzione
la quale ridisegna l'albero con tutte le sottocartelle e i file.
Questo script usa alcuni comandi come innerHTML e il tag span non propri del
VBScript, ma che aumentano le funzionalità di questo linguaggio.
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE=vbscript>
<!--
function naviga(path)
Dim Drive,folder, subfolder,elemFolder
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(path)
Set subfolder = folder.Subfolders
carfiles.innerHTML = path & "<br>"
For each elemFolder in subfolder
nomefolder=replace(lcase(elemFolder),lcase(path),"")
carfiles.innerHTML = carfiles.innerHTML & " <b><span
style=""cursor:hand"" " & replace(elemFolder,"","") & "')"">" & nomefolder & "</span></b><br>"
next
Set files = folder.files
For each elemFile in files
carfiles.innerHTML = carfiles.innerHTML & " " &
replace(lcase(elemFile),lcase(path),"") & "<br>"
next
end function
//-->
</SCRIPT>
<div name=carfiles id=carfiles><span style="cursor:hand"
C:')">C:</span></div>
</BODY>
</HTML>
L'unica cosa che manca per rendere l'albero completamente navigabile, è
la possibilità di navigare all'indietro. Potrebbe essere interessante
provare ad aggiungere questa nuova funzionalità.