View Full Version : Script o programma per elencare l'albero delle sottocartelle di una cartella
Buongiorno a tutti,
avrei bisogno di uno script (preferibilmente VBS, ma anche ASP o ASP.NET) o di un programma eseguibile per elencare l'albero delle sottocartelle di una cartella.
Potete aiutarmi?
Kisses,
Nat
Questo è un'esempio di .vbs che crea memorizza la struttura di una directory di partenza di un file txt (il nome è impostato nella costante 'OUTPUT_FILE_NAME').
In questo esempio il file riepilogativo viene creato nella cartella principale da cui eseguire la scansione delle sotto-directory.
Copia tutto il codice in un file .VBS
' Nome del file che contiene la struttura delle sotto-cartelle
Const OUTPUT_FILE_NAME = "SubFolderList.txt"
Dim oFso ' Scripting.FileSystemObject
Dim oTsResult ' Scripting.TextStream
Dim oMainFolder ' Scripting.Folder
Dim sStartDir
Dim bProcess
Dim sResultText
Set oFso = CreateObject("Scripting.FileSystemObject")
' Chiedo all'utente la directory di partenza
sStartDir = Trim(InputBox("Inserire la directory di partenza", "Elenco sotto directory"))
' Verifico se posso procedere
bProcess = False
If sStartDir = "" Then
MsgBox "Inserire una directory di partenza"
ElseIf Not oFso.FolderExists(sStartDir) Then
MsgBox "La directory indicata non esiste"
Else
bProcess = True
End If
If Right(sStartDir, 1) <> "\" Then sStartDir = sStartDir & "\"
' Creo il file in cui scrivere l'elenco delle sub-directory
Set oTsResult = oFso.CreateTextFile(sStartDir & OUTPUT_FILE_NAME, True)
' Ottengo la directory di partenza
Set oMainFolder = oFso.GetFolder(sStartDir)
oTsResult.WriteLine "Albero sotto cartelle:"
oTsResult.WriteLine ""
' Riempio il file con l'elenco delle informazioni
RecursiveListFolders oMainFolder, oTsResult, 1
' Chiudo il file
oTsResult.Close
Private Sub RecursiveListFolders(ByRef oCurrentFolder, oTsResult,iLevel)
Dim sLineText
Dim oFolder
' Questo è il testo da scrivere nel file
' (Tanti spazi in base al livello di nidificazione delle directory...)
'
sLineText = String(iLevel, " ") & "-> " & oCurrentFolder.Name
oTsResult.WriteLine sLineText
' Vado in ricorsione per tutte le sub-directory...
For Each oFolder In oCurrentFolder.SubFolders
RecursiveListFolders oFolder, oTsResult, iLevel + 1
Next
End Sub
Ciao
Forse ricordo male, ma non esisteva un comando tree in dos/win?
Buona idea!
...è vero, puoi usare il comando TREE del dos (funziona anche con il Dos di Windows).
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.