Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    restituire contenuto directory

    Salve a tutti.
    come da oggetto, vorrei creare una pagina aspx che, lato server, legga il contenuto di una directory (es: /images/photos/) e restituisca i nomi dei file ivi contenuti sotto forma di stringa così:

    "photo1.jpg","photo2.jpg",...

    Questo mi serve perché vorrei popolare dinamicamente un array javascript per poi eseguire alcune operazioni client-side.
    Tipo:

    <head>
    <script type="text/javascript">

    var myArray = new Array( <% cosa devo scrivere qui??? %> );

    function myFunction(array_obj) {...}

    </script>
    </head>

    Non ho la minima idea su come affrontare il problema, non essendo molto ferrato di aspx.
    Spero nel vostro prezioso aiuto e vi ringrazio anticipatamente!

    Andrea
    Don't know what I want, but I know how to get it...

  2. #2
    Utente di HTML.it L'avatar di Holin
    Registrato dal
    Oct 2007
    Messaggi
    64
    Potresti creare una funzione che ti costruisca una stringa contenente i vari file che sono presenti nella directory e poi richiamarla tramite tag <%=nomefunzione()%>.

    Piccolo esempio:

    codice:
    protected function ListaFile()
    {
            String strRisultato = String.Empty;
            if (System.IO.Directory.Exists("~/Path/To/Dir"))
            {
                String[] lista = System.IO.Directory.GetFiles("~/Path/To/Dir");
                foreach (String file in lista)
                {
                    if (strRisultato.Length > 0) strRisultato += " ,";
                    strRisultato += String.Format("'{0}'", file);
                }
            }
            return strRisultato;
    }
    Adesso basta che richiami la funzione dalla pagina con <%=ListaFile()%>.



    P.S. Non l'ho testato, quindi è probabile che ci sia qualche erroretto, ma in teoria funziona

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    codice:
    <%@ Page Language="VB" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
        Protected ReadOnly Property listaFilesJS() As String
            Get
                'ottengo un vettore di files *.jpg completo di percorso
                Dim files() As String = IO.Directory.GetFiles("c:\tmp", "*.jpg")
                
                'ottengo un vettore di files senza percorso
                For i As Integer = 0 To files.Length - 1
                    files(i) = IO.Path.GetFileName(files(i))
                Next
                'restituisco una stringa formattata come vettore javascript
                Return vettoreToArrayJS(files)
            End Get
        End Property
        
        '--------------------------------------------------------------
        'restituisce un vettore monodimensionale letterale js di stringhe
        'tipo ["stefano", "carlo", "nicola"]
        '--------------------------------------------------------------
        Public Function vettoreToArrayJS$(ByVal a$())
            Const Delimitatore$ = """"
    
            Dim i%, r%
            Dim vjs As New StringBuilder()
    
            r = a.GetUpperBound(0)        'indice max riga. Righe = r+1
    
            vjs.Length = 0
            vjs.Append("[ ")
            For i = 0 To r
                If i > 0 Then vjs.Append(", ")
                vjs.Append(Delimitatore)
                vjs.Append(a(i).ToString.Replace("""", "\"""))
                vjs.Append(Delimitatore)
            Next
            vjs.Append("]")
    
            Return vjs.ToString()
    
        End Function
    
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Pagina senza titolo</title>
    
        <script language="javascript" type="text/javascript">
    // <!CDATA[
    
    var myArray = <%=listaFilesJS %>;
    
    // ]]>
    </script>
    </head>
    <body>
        <script type="text/javascript">document.writeln('<%=listaFilesJS %>');</script>
    </body>
    </html>
    Pietro

  4. #4
    Grazie ad entrambi!
    Ho risolto (ieri notte!) in maniera analoga:

    <head runat="server">

    <%
    Response.Write("<script type=" & ControlChars.Quote & "text/javascript" & ControlChars.Quote & ">" & ControlChars.CrLf)
    Dim path As String = "images/banners/"
    Dim dir As New IO.DirectoryInfo(Server.MapPath(path))
    Dim fi() As IO.FileInfo
    fi = dir.GetFiles("*.jpg")
    Dim files As String = ""
    For i As Integer = 0 To fi.Length - 1
    files += ",'" & fi(i).Name & "'"
    Next i
    Response.Write("var " & dir.Name & " = new Array(" _
    & ControlChars.Quote & path & ControlChars.Quote & "," & files.Substring(1) & ");" _
    & ControlChars.CrLf)
    Response.Write("</script>" & ControlChars.CrLf)
    %>

    </head>

    Ancora grazie mille!

    Andrea
    Don't know what I want, but I know how to get it...

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 © 2026 vBulletin Solutions, Inc. All rights reserved.