Newsgroup: it.comp.www.asp
Titolo: Listare una directory e non solo...

Ciao a tutti! Il problema del momento prevede la gestione di una
cartella....
Listare i files della directory, grazie ad un articolo presente su
aspitalia, so come fare, però... vorrei qualche istruzione in più
per riconoscere i vari tipi di files (con estensione .txt, .htm e
così via), in modo da poterli catalogare con un'iconcina vicino
oppure escluderli dal listato (magari non voglio far vedere, ad
esempio, il file .asp che fa visualizzare tutto questo).
Includo qui lo script che ho trovato su aspitalia, spero che
qualcuno mi consiglierà per arricchirlo a dovere come ho
chiesto in questo messaggio : ).
**********************
<%
' Funzione quick-sort.
' Script creato da Zani Andrea
'
Sub QSort(a,ilo,ihi)
  lo=ilo
  hi=ihi
  mezzo=a((lo+hi)/2)
  do
    while (a(lo)<mezzo)
      lo=lo+1
    wend
    while (a(hi)>mezzo)
      hi=hi-1
    wend
    if lo<=hi then
t=a(lo)
a(lo)=a(hi)
a(hi)=t
lo=lo+1
hi=hi-1
    end if
  loop while (lo<=hi)
  if hi>ilo then call QSort(a,ilo,hi)
  if lo<ihi then call QSort(a,lo,ihi)
End Sub
response.Write("Files presenti:<p>")
Set fs=CreateObject("Scripting.FileSystemObject")
Set f=fs.GetFolder("c:\windows")
set fc=f.Files
numero_file=0
dim matrice(1000)
for Each whatever in fc
  matrice(numero_file)=trim(
whatever.name
)
  numero_file=numero_file+1
next
'
' Ordinamento files con tecnica quick-sort
' una delle più veloci routine di ordinamento conosciute
'
call QSort(matrice,0,numero_file)
'
' Visualizza i files ordinati alfabeticamente
'
set fs=Nothing
for t=1 to numero_file ' la lista sarà presente dall'elemento "1" dell'array
  response.write matrice(t)&"<br>"
next
%>
**********************
Come forse avrai notato, oltre a listare, ordina anche
i risultati per nome, il che mi sembra sacrosanto : )
E come avrai sempre notato, perchè sei furbo (e
sicuramente + esperto di me), ti listerà la directory
c:\windows.
E qui c'è la seconda domanda... come faccio a dire
"leggimi la cartella dove stai leggendo il file .asp?".
Ho provato a mettere solo " . " (un punto) anzichè
specificare un path, ma niente... non va. Aspetto
una risposta :)
Grazie a tutti e ringrazio anticipatamente
--
Claudio a.k.a. Xelloss
My Homepage: 
http://www.2web.it/claudio
ICQ#: 27235190


Prego! :)
Ciao,
Andrea Z.
PS
bello quello script! :)))




 **********************
Tra parentesi non ho ancora risolto come riuscire a far listare
la cartella corrente, invece di una specificata a priori.... comunque
concentriamoci su questo problema...
Allora.. la mia intenzione e' analizzare il file che sta esaminando e
fare una cosa di questo tipo (fondo il C++ col VB, magari poi me
lo "traduci in VB puro :))
Mi scuso per gli errori, ma sto imparando l'ASP dal file che ho
scritto nel post precedente :o) (si lo so, sono ridicolo)
for t=1 to numero_file ' la lista sarà presente dall'elemento "1" dell'array
   analizza=matrice(t)
   // devo analizzare l'estensione del file quindi prendo gli ultimi 3
caratteri
   lunghezzafile=(strlen(analizza) - 2)
   tempestensione[1]=analizza[lunghezzafile]
   tempestensione[2]=analizza[lunghezzafile+1]
   tempestensione[3]=analizza[lunghezzafile+2]
   ext=tempestensione
   // ora che conosco l'estensione beh, e' facile...
   if ext = "jpg" // lunga serie di if quanti sono i tipi di files da
distinguere
     ... eccetera eccetera...
      response.write matrice(t)&"<br>"
     ... eccetera eccetera...
   end if
next
puff puff... allora, chi traduce??? Ce ne ho messo per scrivere :o)


 bello quello script! :)))
Magari l'avessi fatto io :P. In parte ora l'hai fatto anche tu :)
Ecco la parte che ho modificato per ora grazie al tuo
intervento:
........
set fs=Nothing
for t=1 to numero_file
  nome=matrice(t)
  tipo=mid(nome,InStrRev(nome,".")+1)
  if tipo="asp" then
    response.write "<tr><td width=20 bordercolor=red
align=left>ASP</td><td>&nbsp;"
    response.write matrice(t)
    response.write "</td></tr>"
  end if
  if tipo="htm" then
    response.write "<tr><td width=20 bordercolor=red
align=left>HTML</td><td>&nbsp;"
    response.write matrice(t)
    response.write "</td></tr>"
  end if
next
......
Ho una domanda però... non ho ancora capito perchè se scrivo
qualsiasi cosa alla fine dello script (o perfino in mezzo!!!) mi
posiziona la scritta (o l'immagine, etc...) prima dell'elenco dei
files...
Per riuscirci devo #includere  : )  il file in un'altra pagina.
Hai idea del perchè?
Ciao e ancora grazie di tutto!
