http://digilander.libero.it/Cenati

Directory in Internet Explorer

home | e-mail e contatti | Introduzione al sito | Cosa e' e come imparare VbScript

 

 

 

 

 

Mostra il contenuto della directory in una finestra di Internet Explorer

Questa è un primo script che ho realizzato per ottenere il contenuto di una directory.

Usando Internet Explorer, presente su tutti i computer, posso ottenerne la stampa oppure recuperarne il contenuto con il taglia e copia. I dati sono ottenuti trascinando una directory sull'icona dello script. Se invece viene avviato con un doppio click viene visualizzato un messaggio che indica come deve essere utilizzato il programma.

Non sono molti i dati recuperati dal programma, ma è quello di cui spesso si ha bisogno: solo il nome dei file e la data di creazione. Potrei impaginarli meglio, magari creando una tabella, ma copiando e incollando il contenuto della finestra potrei avere delle difficoltà. Allora ho deciso di lasciare così questo programma e fare qualcosa di più complesso con Excel (vedi "Directory con Excel"), estraendo molte più informazioni sui files rispetto a quanto mostro in questa finestra di IE.

La prima parte del programma usa il file system object per puntare alla cartella da esaminare (con l'oggetto oFolder). Un oggetto (oFiles) punta ai files della cartella, un secondo invece punta alle sottocartelle (oFolders=oFolder.subfolders). Usando le proprietà di sola lettura del Fso si leggono i nomi (oFile.name e oFolder.name) e si mettono in una variabile di testo.

La seconda parte del programma crea un'istanza di internet explorer. Come d'abitudine, bisogna navigare fino ad un foglio vuoto, aspettare che IE sia pronto (con un ciclo di attesa di 200 millisecondi per non occupare inutilmente risorse del computer) ed impostare le proprietà della finestra.

Fatto questo, scrivo le intestazioni in html. Faccio uno sfondo rosa tenue, che è meglio di uno tutto bianco.

Poi scrivo il testo con i dati dei files e chiudo le intestazioni html. La pagina è completa e può essere stampata e/o copiata.

Copia il programma riportato qui sotto in un file con estensione ".vbs" oppure scarica l'archivio zip contentente lo script.

Giovanni Cenati.


      
'<%
'************************************************
' File:    Directory in IE.vbs (VBScript) 
' Author:  Giovanni Cenati 
' Mostra in una pagina di IE l'elenco dei
' files della directory trascinata sopra l'icona
' dello script.
' http://digilander.libero.it/Cenati
' Codice vbScript liberamente utilizzabile citando il sito.
'************************************************
Dim Text
Dim  fso, oFolder, oFolders, oFiles, oFile
Set objArgs = WScript.Arguments 'Vedo se ci sono degli argomenti passati allo script
if objargs.count=0 then 'altrimenti mostro come si usa il programma
	msgbox "Trascinare una directory sul programma per averne l'elenco dei files"_
     ,vbinformation+vbokonly,"VB Directory by Cenati Giovanni"
	wscript.quit
end if
path = objArgs(0) 'questa variabile contiene il nome della directory da leggere
Title = "VB Directory by Cenati Giovanni"
' Crea l'oggetto FileSystemObject per accedere al file system.
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set oFolder = fso.GetFolder(path) 'Qui punto alla directory specificata
Set oFiles = oFolder.Files ' Questi sono i files
set oFolders =oFolder.Subfolders 'queste sono le sottocartelle
text= "Directory: " & path & vbcrlf & vbcrlf 'Intestazione
For Each oFile In oFiles 'recupero le informazioni sui files
        Text = Text & "[ " & DateCreatedEx(oFile) & " ] " ' Data di creazione
        Text = Text & oFile.name & vbCrLf 
Next
Text = Text & "<b>" 'Le sottocartelle le metto in grassetto
for each oFolder in oFolders 'Recupero le informazioni sulle sottocartelle
        Text = Text & "[ " & DateCreatedEx(oFolder) & " ] " ' Data di creazione
        Text = Text & oFolder.name & vbCrLf 
next
        Text = Text & "</b>" 'termino la parte in grassetto

' Lancia Internet Explorer per mostrare i risultati.
Set oIE = WScript.CreateObject("InternetExplorer.Application")
oIE.navigate "about:blank" ' documento vuoto
' Importante: aspetta che Internet Explorer sia pronto
Do While (oIE.Busy) 
        WScript.Sleep 200 ' Sospende per 200 millisecondi.
Loop
oIE.Visible = 1 ' Internet Explorer è visibile.
oIE.ToolBar = 1 ' ed ha la toolbar così è presente il pulsante "stampa"
oIE.Height = 500 
Set doc1 = oIE.Document ' Punta al documento...
doc1.open ' ...lo apre
' Scrive le intestazioni html ed il testo con le info sulla directory
doc1.writeln("<html><head><title>" & Title & "</title></head>")
doc1.writeln("<body bgcolor='#FAF0F0'><pre>")
doc1.writeln(Text) ' questo è l'output
doc1.writeln("</pre></body></html>")
doc1.close ' Chiude il documento, che rimane sullo schermo
'questa qui sotto l'ho copiata così come era 
' Helper function for preventing run-time errors
Function DateCreatedEx(obj)
        On Error Resume Next ' Error handling on
        Dim datex
        ' Retrieves the file creation date
        datex = obj.DateCreated 'Created 
        If Err.Number <> 0 Then datex = "unknown "
        DateCreatedEx = datex
        On Error Goto 0 ' Error handling off
End Function

 
 

© Cenati Giovanni 2004/2010 - http://digilander.libero.it/Cenati - Reventlov at Katamail com

home | e-mail e contatti | Introduzione al sito | Cosa e' e come imparare VbScript