mi hanno detto che funzionava...vedi un pò te:
codice:
<%
dim fso,mioAlbero
'sub di partenza
sub stampaAlbero(percorso)
apriFso()
if fso.FolderExists(percorso) then
stampaIntestazione
apri "albero"
createTree percorso
chiudi "albero"
else
toStamp "Errore nella procedura: percorso di partenza errato",99
end if
chiudiFso()
end sub
'sub ausiliaria per inizializzare fso
sub apriFso()
if not isObject(fso) then set fso=server.CreateObject("scripting.filesystemobject")
end sub
'sub ausiliaria per chiudere fso
sub chiudiFso()
if isObject(fso) then set fso=nothing
end sub
'sub di avvio creazione albero
sub createTree(percorso)
'per ogni folder che trovo richiamo createTree
dim folder,files,genitore,nomecartella
if fso.folderExists(percorso) then
'ricavo il nomecartella
nomecartella=getStr(percorso,0)
genitore=getStr(percorso,1)
apri "cartella nome=""" & nomecartella & """ parent=""" & genitore & """"
'attributo "nome",nomecartella 'opzionale
'attributo "genitore",genitore 'opzionale
set folder=fso.getFolder(percorso)
'stampo prima tutti i sottoFolder
for each subF in folder.subFolders
createTree percorso & "\" & subF.name
next
'stampo tutti i File
set files=folder.Files
conta=0
for each file in files
conta=conta+1
if conta=1 then apri "elencofile"
toStamp file.name,2
next
if conta>0 then chiudi "elencofile"
set file=nothing
set folder=nothing
chiudi "cartella" 'chiudo l'elemento cartella
else
toStamp "Errore nel percorso",99
end if
end sub
'stampo l'intestazione dell'xml
sub stampaIntestazione()
mioAlbero=mioAlbero & "<?xml version=""1.0"" encoding=""UTF-8""?>"
end sub
'stampo gli elementi (file o errori)
sub toStamp(oggetto,tipo)
dim tagApri, tagChiudi
select case tipo
case 2
tagApri="<file>"
tagChiudi="</file>"
case else
tagApri="<errore>"
tagChiudi="</errore>"
end select
mioAlbero=mioAlbero & tagApri & "<![CDATA[" & oggetto & "]]>" & tagChiudi
end sub
'apro un entita nome
sub apri(nome)
mioAlbero=mioAlbero & "<" & nome & ">"
end sub
'chiudo un entita nome
sub chiudi(nome)
mioAlbero=mioAlbero & "</" & nome & ">"
end sub
'stampo un entita nome con dentro un valore
sub attributo(nome,valore)
mioAlbero=mioAlbero & "<" & nome & "><![CDATA[" & valore & "]]>" & "</" & nome & ">"
end sub
'recupero un pezzo specifico del percorso
function getStr(stringa,numero)
dim temp,max
temp=split(stringa,"\")
max=ubound(temp)
getStr=temp(max-numero)
end function
stampaAlbero "C:\cartella_inizio" 'riempio mioAlbero
' Impostazione che setta il tipo di file in output su XML
response.ContentType = "text/xml"
response.Write mioAlbero 'stampo l'albero
%>