• User

    nascondere estensione di un file

    Ho modificato uno script per la visualizzazione di thumbnail, una sorta di galleria immagini, per realizzare una piccola directory;
    finche legge le cartelle nessun problema, ma arrivato ai file appare l' estensione (in questo caso .asp)...

    
    <%
    Const ForReading = 1, ForWriting = 2, ForAppending = 3
    Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
    qfolder = request.querystring("f")
    if qfolder = "" then
    folderspec = server.mappath("categorie/.")
    Set filesys = CreateObject("Scripting.FileSystemObject") 
    Set demofolder = filesys.GetFolder(folderspec) 
    Set folcoll = demofolder.SubFolders
    Response.Write "<p class='paragrafo'><strong>Articoli divisi per categorie</strong></p>"
    For Each subfol in folcoll
    folfilen = subfol.Files.count - 1
    folsize = left((subfol.size/1024000), 3)
    folist = folist & "<p><a href='categorie.asp?f=" & subfol.name & "'><strong title='view'>»</strong> " & subfol.Name & " </a><small>&nbsp;(inserzioni: "& folfilen & ")</small>" & vbcrlf
    folist = folist & "</p>" 
    Next
    set filesys = nothing
    Response.Write folist
    else
    filepath = server.mappath("categorie") & "\" & qfolder
    captionfile = filepath & "\captions.txt"
    Set filesys = CreateObject("Scripting.FileSystemObject")
    Dim SomeArray()
    'caption part
    If filesys.FileExists(captionfile) then
    set file = filesys.GetFile(captionfile)
    Set TextStream = file.OpenAsTextStream(ForReading,TristateUseDefault)
    captioncount = 0
    Do While Not TextStream.AtEndOfStream
    Line = TextStream.readline
    ReDim Preserve SomeArray(captioncount)
    SomeArray(captioncount) = line
    response.write " " & somearray(captioncount) 
    captioncount = captioncount + 1
    'Response.write Line
    Loop
    textStream.close
    end if
    'folder part
    Set demofolder = filesys.GetFolder(filepath) 
    Set filecoll = demofolder.Files
    filecount = -1
    For Each file in filecoll
    Ext = UCase(Right(File.Path, 3)) 
    If Ext = "ASP" OR Ext = "asp" Then
    on error resume next
    data = SomeArray(filecount)
    on error goto 0
    hrefpath = "categorie/" & qfolder & "/" & file.name
    imagepath = "<a href='" & hrefpath & "'><li>" & file.name & "</li></a>"
    filist = filist & imagepath & vbcrlf
    filist = filist & ""
    filecount = filecount + 1
    data = "" 
    end if
    Next
    set filesys = Nothing
    %>
    <p><a href="categorie.asp" title="torna alla lista ">articoli divisi per categorie</a> &raquo;
    &nbsp;<%=qfolder%></p>
    <%=filist%>
    <% end if %> 
    
    

    sapete indicarmi una strada?
    mille grazie


  • User

    provo a porre diversamente la domanda:
    stampando a schermo i contenuti di una directory (che nel mio caso contiene pagine .asp), è possibile visualizzare solo il nome del file e non l' estensione?
    i risultati dello script ad esempio sono:
    pagina1.asp
    pagina2.asp
    pagina3.asp
    io voreei semplicemente:
    pagina1
    pagina2
    etc
    oppure potrebbe andare:
    pagina1...
    pagina2...
    pagina3...

    grazie ancora
    Sid


  • User Attivo

    @sid05 said:

    provo a porre diversamente la domanda:
    stampando a schermo i contenuti di una directory (che nel mio caso contiene pagine .asp), è possibile visualizzare solo il nome del file e non l' estensione?
    i risultati dello script ad esempio sono:
    pagina1.asp
    pagina2.asp
    pagina3.asp
    io voreei semplicemente:
    pagina1
    pagina2
    etc
    oppure potrebbe andare:
    pagina1...
    pagina2...
    pagina3...

    grazie ancora
    Sid

    metti che la tua variabile con il nome del file si chiami nomefile

    nomefile=Left(nomefile,InstrRev(nomefile,".")-1)

    In questo modo tronchi tutto ciò che viene dopo il punto.


  • User

    @eLLeGi said:

    metti che la tua variabile con il nome del file si chiami nomefile

    nomefile=Left(nomefile,InstrRev(nomefile,".")-1)

    In questo modo tronchi tutto ciò che viene dopo il punto.
    questa è la parte di codice che stampa i file

    if instr(fl.name,"asp")then
    Response.write "<a href='"& fl.name &"'>" & fl.name &"</a>"
    

    sto provando ad inserire il tuo codice ma con scarsi risultati...


  • User Attivo

    @sid05 said:

    questa è la parte di codice che stampa i file

    >if instr(fl.name,"asp")then
    Response.write "<a href='"& fl.name &"'>" & fl.name &"</a>"
    >```
     
    sto provando ad inserire il tuo codice ma con scarsi risultati...
     
     
    

    if instr(fl.name,"asp")then
    nomefile=fl.name
    nomefile=Left(nomefile,InstrRev(nomefile,".")-1)

    Response.write "<a href='"& fl.name &"'>" & nomefile &"</a>"

    'nota bene qui ho lasciato l'href non troncato e il testo senza estensione come volevi tu


  • User

    Ho inserito il codice come da tuo suggerimento ma mi restituisce un errore di run-time VB:
    necessario oggetto:"fl"

    ti invio il codice completo (che è un po diverso dalla versione che ho postato)

    
    <%
    Dim FileObject
    Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
    StrPath = Server.MapPath("/categorie")
    call GetFiles(StrPath)
    call GetFolders(StrPath)
     
    Set FileObject = Nothing
     
    Sub GetFiles(strPath)
    Set f = FileObject.GetFolder( strPath )
    Set fc = f.Files
     
    For Each f1 in fc
    if instr(f1.name, ".asp") then
    nomefile = fl.name
    nomefile = Left(nomefile, InstrRev(nomefile,".")-1)
    
    Response.write "<p><a href='categorie/"& f.name &"/" & f1.name & "'> " & nomefile & "</a>"
    end if
    Next
    Set fc = Nothing
    Set f = Nothing
    End sub
    Sub GetFolders(strPath)
    Set f = FileObject.GetFolder( strPath )
    Set fc = f.SubFolders
    For Each f1 in fc
    Response.write "<h3>" & f1.name
    Response.write "</h3>"
    call GetFiles(f1)
    call GetFolders(f1)
    Response.write ""
    Next
    Set fc = Nothing
    Set f = Nothing
    End sub
    %>
    
    

    per ora ti ringrazio per il tempo che mi dedichi
    a presto...


  • User Attivo

    e vabbè allora il nome nel tuo caso invece di FL.NAME e' F1.NAME
    per cui

    cambia questa riga nomefile = fl.name in
    nomefile = f1.name


  • User

    sono veramente idiota...
    avevo confuso una l con un 1...
    perdonami---

    grazie mille, perfettamente funzionante, l' appetito vien mangiando:
    se volessi inserire alla fine i puntini di sospensione?

    mille grazie ancora


  • User Attivo

    @sid05 said:

    sono veramente idiota...
    avevo confuso una l con un 1...
    perdonami---

    grazie mille, perfettamente funzionante, l' appetito vien mangiando:
    se volessi inserire alla fine i puntini di sospensione?

    mille grazie ancora

    nomefile = f1.name & "..."


  • User

    in questo modo però non tronca più la stringa..
    ho risolto mettendo i punti nel link 😉

    ti ringrazio sinceramente per la disponibilità e per il suggerimento
    a presto