salve a tutti,
vorrei sapere se c'é modo di realizzare una pagina che restituisca l'elenco dei file in una directory e magari anche le varie cartelle contenute
grazie a tutti, fabio
salve a tutti,
vorrei sapere se c'é modo di realizzare una pagina che restituisca l'elenco dei file in una directory e magari anche le varie cartelle contenute
grazie a tutti, fabio
dimmi se ti va bene...codice:<%@LANGUAGE="VBSCRIPT" CODEPAGE="CP_ACP"%> <% Public FSO, Fold, imgFile, imgCartella, Funzioni, strPath, strTab, BstrPath, Errupload Sub Dir(parDir, MostraFile) Dim Ff, Fc, TempFile, TempDir, pathDir, Numbarre, pathFile Set FSO = server.CreateObject("Scripting.FileSystemObject") Set Fold = FSO.getfolder(server.mappath(parDir)) Set Ff = Fold.Files Set Fc = Fold.subfolders If MostraFile = "si" Then For Each TempFile In Ff pathfile = parDir & "/" & TempFile.name numBarre= MettiSpazi(pathFile) strTab = strTab & numBarre &TempFile.Name strTab = strTab & " " Next End If For Each TempDir In Fc If InStr(1, TempDir.Name, "_") = 0 Then pathDir = parDir & "/" & TempDir.Name numBarre=MettiSpazi(pathDir) strTab = strTab & numBarre & UCase(TempDir.Name) strTab = strTab & " " Call Dir(pathDir, MostraFile) End If Next End Sub Function MettiSpazi(Path) Dim Barre MettiSpazi = Empty Barre = ContaBarre(Path) - BstrPath For k = 1 To Barre For j = 1 To 4 MettiSpazi = MettiSpazi & "" Next Next End Function Function ContaBarre(Path) Dim Carattere ContaBarre = 0 For i = 1 To Len(Path) Carattere = Mid(Path, i, 1) If Carattere = "\" Or Carattere = "/" Then ContaBarre = ContaBarre + 1 Next End Function strPath = "/public/documenti/news" 'modifica la tua path qui BstrPath = ContaBarre(strPath) Set FSO = server.CreateObject("Scripting.FileSystemObject") Set Fold = FSO.getfolder(server.mappath(strPath)) strTab = "" strTab = strTab & UCase(Fold.Name) strTab = strTab & " " Set Fold = Nothing Set FSO = Nothing Call Dir(strPath, "si") errupload="seleziona la cartella" %> <div id="erroreupload"><%=ucase(errupload)%></div> <div id="contcartelle"> <div id="cartelle"> <%response.write strTab%> </div> </div>
Bombardare per la pace, è come trombare per la verginità.
C'è qualcuno al mondo che tromba troppo secondo me...
Andrea Medici
e se volessi anche cancellare la directory? tipo aggiungendo questo :Originariamente inviato da andreaciao_22
dimmi se ti va bene...
e questo ad inizio pagina:Codice PHP:strTab = "[b]<a href=prova_cartelle.asp?cancella=" & strTab & ">"
strTab = strTab & "</a>
"
solo che non va forse ho fatto "casino" nel ciclo " For Each TempDir In Fc" ? :master:Codice PHP:<%
If Request.QueryString("cancella") <> "" Then
strTab = Request.QueryString("cancella")
Set FSODELETE = Server.CreateObject("Scripting.FileSystemObject")
FSODELETE.DeleteFolder(Server.MapPath("/public/miacartella/" & strTab))
end if
%>
Ciao andreaciao_22, sto utilizzando il tuo script pero mi servirebbe un consiglio per visualizzare diversamente i dati...
copiando e incollando il tuo codice, cambiando solo la cartella, ho questi risultati :
ROOT
africa.html
alberghi.Roma.htm
antiquari.html
index.html
COMPUTER
venditacomputerportatili.html
PORTATILI
offerteportatili.htm
venditaportatilidell.html
VAN-GOGH
van_gogh_passeggiata_al_ch.html
Invece vorrei che i risultati mi uscissero piu o meno cosi
/root/africa.html
/root/alberghi.Roma.htm
/root/antiquari.html
/root/index.html
/root/computer/venditacomputerportatili.html
/root/computer/portatili/offerteportatili.htm
/root/computer/portatili/venditaportatilidell.html
/root/van-gogh/van_gogh_passeggiata_al_ch.html
nota : la cartella "portatili" si trova dentro la cartella "computer"
Puoi aiutarmi? TI PREGO!!!
![]()
![]()
![]()
![]()
Grazie!![]()
ce l'ho fatta!
spero possa essere utile a qualcuno!
<%
Public FSO, Fold, imgFile, imgCartella, Funzioni, strPath, strTab, BstrPath, Errupload
Sub Dir(parDir, MostraFile)
Dim Ff, Fc, TempFile, TempDir, pathDir, Numbarre, pathFile
Set FSO = server.CreateObject("Scripting.FileSystemObject")
Set Fold = FSO.getfolder(server.mappath(parDir))
Set Ff = Fold.Files
Set Fc = Fold.subfolders
If MostraFile = "si" Then
For Each TempFile In Ff
pathfile = parDir & "/" & TempFile.name
strTab = strTab & parDir & "/" & TempFile.Name
strTab = strTab & "
"
Next
End If
For Each TempDir In Fc
pathDir = parDir & "/" & TempDir.Name
Call Dir(pathDir, MostraFile)
Next
End Sub
Function ContaBarre(Path)
Dim Carattere
ContaBarre = 0
For i = 1 To Len(Path)
Carattere = Mid(Path, i, 1)
If Carattere = "\" Or Carattere = "/" Then ContaBarre = ContaBarre + 1
Next
End Function
strPath = "/cartella" 'modifica la tua path qui
BstrPath = ContaBarre(strPath)
Set FSO = server.CreateObject("Scripting.FileSystemObject")
Set Fold = FSO.getfolder(server.mappath(strPath))
Set Fold = Nothing
Set FSO = Nothing
Call Dir(strPath, "si")
errupload="seleziona la cartella"
%>
<div id="contcartelle">
<div id="cartelle">
<%response.write strTab%>
</div>
</div>
Salve a tutti, anche io sono alle prese con qualcosa di simile, una semplice pagina asp che mi restituisce il contenuto di una determinata directory, premesso che non ho grandi competenze di asp, ho trovato questo semplice script che fa al caso mio, vorrei, se qualcuno mi aiuta, fare due piccole personalizzazioni,
questo è lo script:
********************************************
<html>
<head>
<title>file_e_directory</title>
</head>
<body>
<%
dir="\"
Set file1 = CreateObject("Scripting.FileSystemObject")
Set file2 = file1.GetFolder(server.mappath("\"))
Set file3 = file2.Files
For Each file in file3
response.write "<A HREF='"
response.write file.name
response.write "'>"
response.write file.name
response.write "</A>
"
Next
%>
</body>
</html>
************************************************** ****
come detto, se qualcuno mi aiuta vorrei fare delle personalizzazioni,
1- far si che il link possa aprirsi in una nuova finestra,
ho fatto diversi tentativi, ma non sono riuscito, dovrei utilizzare il target= _blank? se si come?
2- l'altra modifica riguarda la paginazione, se in una directory ci sono tanti files come posso splittare il risultato a video? mi va bene una impaginazione a 2 o 3 colonne oppure in 2 o più pagine.
anticipatamente ringrazio!!
Ciao carlinojr, per quanto riguarda il primo punto penso che devi usare la concatenazione di stringa & cosi :
<%
...
For Each file in file3
response.write "<a href='http://www.tuosito.com/cartella/"&file.name &"' target='_blank'>"
response.write file.name&"</a>
"
Next
...
%>
copia le 4 righe che ti ho scritto (senza i puntini ovviamente) e dimmi se ti funziona
Per quanto riguarda la paginazione, se vuoi splittare i risultati su piu colonne puoi fare cosi
<%
...
response.write("<table>")
response.write("<tr>")
i = -1
For Each file in file3
i = i + 1
if i mod 30 = 0 then response.write("<td>") end if
response.write "<a href='http://www.tuosito.com/cartella/"&file.name &"' target='_blank'>"
response.write file.name&"</a>
"
if i mod 30 = 29 then response.write("</td>") end if
Next
response.write("</tr>")
response.write("</table>")
...
%>
Se invece di 30 risultati per colonna vuoi mettere un altra cifra ad esempio 15 devi cambiare queste due righe cosi :
<%
...
if i mod 15 = 0 then response.write("<td>") end if
...
if i mod 15 = 14 then response.write("</td>") end if
...
%>
Come dividere in piu pagine i file mi sembra un bel problema e sinceramente non lo so, :master: ci penso un po su e se mi viene un'idea te lo faccio sapere
Se hai bisogno d'aiuto fammi sapere![]()
Ciao Ufotizio, innanzitutto grazie,
la paginazione a colonne funziona alla grande, e mi va bene,
per quanto riguarda l'apertura del link in una nuova finestra funziona anche quella ma ho risolto in questo modo:
*******************
<%
dir="\"
Set file1 = CreateObject("Scripting.FileSystemObject")
Set file2 = file1.GetFolder(server.mappath("\"))
Set file3 = file2.Files
For Each file in file3
response.write "<A HREF='"
response.write file.name
response.write "' "&"' target='_blank'>"
response.write file.name
response.write "</A>
"
Next
%>
*******************
dopo diversi tentativi sono arrivato alla conclusione che non è necessario scrivere il percorso completo in questo modo
response.write "<a href='http://www.tuosito.com/cartella/"&file.name &"' target='_blank'>"
in quanto il percorso fisico è gia determinato nelle seguenti stringhe:
dir="\"
Set file2 = file1.GetFolder(server.mappath("\"))
lo script così per come è stato concepito (io l'ho trovato in giro x la rete)
è un po limitato, poichè legge i file della directory in cui viene inserito
diciamo che tutto sommato potrebbe andarmi bene, ma se si riuscisse a superare questo ostacolo potrebbe andare meglio.
Ho fatto un tentativo, ma viste le mie conoscienze quasi nulle non riesco a capirci granchè,
mi spiego meglio,
se nella riga dir="\" sostituisco "\" con il nome di una cartella residente nel server ad esempio, dir="comunicati" lo script legge i file contenuti nella directory "comunicati" ma il link punta ad un percorso errato
in buona sostanza il link corretto dovrebbe essere:
http://www.miosito.com/comunicati/nomefile.xxx
invece mi ritrovo http://www.miosito.com/nomefile.xxx
lo stesso discorso vale se provo a sostituire
Set file2 = file1.GetFolder(server.mappath("\")) con
Set file2 = file1.GetFolder(server.mappath("comunicati"))
al momento lo script funziona in questo modo, se voglio leggere il contenuto della directory comunicati debbo inserire lo script all'interno della directory stessa, come detto mi accontento, ma se si supera questa limitazione mi accontento meglio!!![]()
![]()
Ciao carlinojr, sono contento che quello che ti ho scritto è stato utile
non so se ho capito bene il problema, comunque rimango un po perplesso su queste due righe
dir="\"
Set file2 = file1.GetFolder(server.mappath("\"))
perche ti valorizzi "dir" e poi non lo usi? per utilizzare al meglio la variabile "dir" dovresti fare cosi
dir="\"
Set file2 = file1.GetFolder(server.mappath(dir))
oppure lasci perdere la variabile e usi soltanto
Set file2 = file1.GetFolder(server.mappath("\"))
A parte questo comunque se tu usi questo codice
For Each file in file3
response.write "<A HREF='"
response.write file.name
response.write "' "&"' target='_blank'>"
response.write file.name
response.write "</A>
"
Next
il risultato che avrai sara questo
nomefile.xxx
anche se cambi l'indirizzo server.mappath("\")
Quello che tu dici riguardo il fatto che il percorso di file.name è gia determinato da server.mappath("\") è sbagliato perche in realta server.mappath("\") serve per determinare la cartella da leggere, mentre file.name è soltanto il nome del file che viene letto
per questo tu devi scrivere manualmente l'indirizzo esatto di dove si trovano i file.
in sostanza se tu scrivi
response.write file.name
non avrai http://www.tuosito.com/cartella/filename.xxx
ma soltanto filename.xxx
Spero di essere stato chiaro e di aver centrato il problema![]()
P.S. se tu ti scrivi in una pagina di test questo <%=server.mappath("\")%> vedrai il percorso fisico sull'hard disk dell'hosting del tuo sito che sarà una cosa di questo genere
D:\Inetpub\webs\tuositocom
Ciao Utofizio.
ti ringrazio per lo script intitolato
e, come vedi, a qualcuno è stato subito utile, anche se credo che molti altri lo abbiano già applicato.ce l'ho fatta!
spero possa essere utile a qualcuno!
a seguire il tuo codice io avrei bisogno però di visualizzare e modificare i file che vengono trovati.
ho notato, purtroppo, che lo script tratta tutti i file come un unico testo
infatti la variabile strTab stampa tutto il percorso di tutti i file che trova, sebbene siano in directory separate.
nel mio caso, a seguito di questo codice finale (l'ho attaccato dopo il tuo)
io stampo a video la seguente prova relativa alle uniche due cartelle presenti in \public localecodice:... <div id="contcartelle"> <div id="cartelle"> <%response.write strTab%> </p> <%response.write strTab%> ">Modifica
le ultime due righe dovrebbero linkare ai relativi file contenuti nelle rispettive directory.codice:/public/15/salento/salento-nuovo-2_daniele-nuovo2.asp /public/16/Lido-Marini/Lido-Marini.asp /public/15/salento/salento-nuovo-2_daniele-nuovo2.asp /public/16/Lido-Marini/Lido-Marini.asp
come potrei fare? a presto.
ps= per ora lasciamo perdere la funzione MID nella parte finale che mi dovrebbe passare il nome della prima cartella \16 p. es. in modo tale da far riconoscere al file modifica.asp l'id del record da modificare
---------------------------
danielix05