Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19

Discussione: elenco dir e file

  1. #1

    elenco dir e file

    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

  2. #2
    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>
    dimmi se ti va bene...
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

  3. #3
    Originariamente inviato da andreaciao_22

    dimmi se ti va bene...
    e se volessi anche cancellare la directory? tipo aggiungendo questo :

    Codice PHP:
    strTab "[b]<a href=prova_cartelle.asp?cancella=" strTab ">"
    strTab strTab "</a>

    e questo ad inizio pagina:

    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
    %> 
    solo che non va forse ho fatto "casino" nel ciclo " For Each TempDir In Fc" ? :master:

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    255
    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!

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    255
    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>

  6. #6
    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!!

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    255
    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

  8. #8
    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!!

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    255
    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

  10. #10

    link sulla variabile strTab

    Ciao Utofizio.

    ti ringrazio per lo script intitolato
    ce l'ho fatta!

    spero possa essere utile a qualcuno!
    e, come vedi, a qualcuno è stato subito utile, anche se credo che molti altri lo abbiano già applicato.

    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)

    codice:
    ...
    <div id="contcartelle">
    <div id="cartelle">
    
      
    
    
          <%response.write strTab%>
    </p>
    
    	
    <%response.write strTab%> ">Modifica
    io stampo a video la seguente prova relativa alle uniche due cartelle presenti in \public locale

    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
    le ultime due righe dovrebbero linkare ai relativi file contenuti nelle rispettive directory.

    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.