Newsgroup: it.comp.lang.visual-basic
Titolo: leggere il contenuto di una directory

Salve a tutti, sono alle prime armi con Vbasic vorrei chiedervi come si
puo fare per leggere il contenuto di una directory cioè sapere i file
che ci sono in essa poichè voglio valorizzare una tabella con i nomi di
quest'ultimi. Approfitto per chiedere anche se esiste una funzione che
permette di ridimensionare un'immagine e visualizzarla.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:71bf12bd3aca728f3ca...@mygate.mailgate.org...

per ciclare i files all'internodi uan directory
MyPath = "c:\"   ' Imposta il percorso.
MyName = Dir(MyPath, vbNormal)   ' Recupera la prima voce.
Do While MyName <> ""   ' Avvia il ciclo.
    msgbox MyName
    MyName = Dir   ' Legge la voce successiva.
Loop
Ciao alfredo


....oppure.... vado a memoria
Devi aggiungere alle referenze il Microsoft Sripting RunTime
    Dim Fso as new fileSystemObject
    Dim fld As Folder
    Dim f as File
    Set fld = Fso.GetFolder (path)
    'path č il percorso della cartella che vuoi leggere
    For Each f In fld.Files
        debug.print 
f.name
    Next

 quest'ultimi.
Io uso questa routine, recuperata in Rete e che ho modificato
per adattarla al mio "stile" di programmazione, per renderla piu'
flessibile e per correggere un paio di problemi che aveva.
Ciao e vedi se puo' fare al caso tuo.
Franco
-----------------------------------------------------------------------------------------
Public Function FindFiles(ByVal FolderSpec$, ByVal SearchStr$, ByRef
FileList$(), _
    Optional ByRef FileCount&, Optional ByRef DirCount&, Optional ByRef
SizeOfFiles#, _
    Optional ByVal bAncheSC As Boolean = True) As Boolean
'
'   Ritorna nel vettore FileList$(1 To FileCount) tutti i files
'   di tipo SearchStr$ contenuti in FolderSpec$ ed (eventualmente)
'   nelle sue sottocartelle.
'   FindFiles ritorna True se FileCount > 0.
'
'   Parametri:
'    FolderSpec$:   folder da esplorare.
'    SearchStr$:    stringa di ricerca dei files (e.g. "*.*", "*.bmp",
...).
'    FileList$():   vettore contenente i nomi (completi di path) dei
files trovati.
'    FileCount:     numero di files trovati.
'    DirCount:      numero di folders (e di sottocartelle) contenuti in
FolderSpec$
'                   (valido solo se bAncheSC = True).
'    SizeOfFiles:   ritorna con la somma delle lunghezze in [Bytes] dei
files trovati.
'    bAncheSC:      se True ricerca, ricorsivamente, anche i files
contenuti
'                   nelle sottocartelle di FolderSpec$.
'
'   Nota: le variabili FileCount, DirCount, SizeOfFiles ed il vettore
'         FileList$() non vengono azzerati chiamando questa routine.
'         Questo permette, con chiamate successive, di raccogliere in
'         FileList$() i files di diversi folders.
'
'   Warning:    All rights reserved to Maged Said Abdel Latif
'   E-Mail:     
maged...@hotmail.com
'
'   Nota: la routine originale di Maged Said e' stata modificata.
'
    Dim I&, nDir&
    Dim FileName$, DirName$, dirNames$()
'
    On Error GoTo sysFileERR
'
    If Right$(FolderSpec$, 1) <> "\" Then FolderSpec$ = FolderSpec$ &
"\"
'
    ' Trova tutti i files di tipo SearchStr$ contenuti direttamente in
FolderSpec$:
    FileName$ = Dir(FolderSpec$ & SearchStr, _
                    vbNormal Or vbHidden Or vbSystem Or vbReadOnly)
    While (Len(FileName$) <> 0)
        If (FileName$ <> "?") Then
            SizeOfFiles = SizeOfFiles + CDbl(FileLen(FolderSpec$ &
FileName$))
            FileCount = FileCount + 1
            ReDim Preserve FileList$(1 To FileCount)
            FileList$(FileCount) = FolderSpec$ & FileName$
        End If
'
        FileName$ = Dir()
    Wend
'
    If bAncheSC Then
        ' Trova tutti i folders contenuti direttamente in FolderSpec$:
        nDir = 0
        DirName$ = Dir(FolderSpec$, vbDirectory Or vbHidden Or vbSystem)
        Do While Len(DirName$) <> 0
            If (DirName$ <> ".") And (DirName$ <> "..") And (DirName$ <>
"?") Then
                If GetAttr(FolderSpec$ & DirName$) And vbDirectory Then
                    nDir = nDir + 1
                    ReDim Preserve dirNames$(1 To nDir)
                    dirNames$(nDir) = DirName$
                    DirCount = DirCount + 1
                End If
'
sysFileERRCont:
            End If
'
            DirName$ = Dir()
        Loop
'
        ' Se FolderSpec$ contiene dei folders richiama, ricorsivamente,
        ' questa routine per ogni folder trovato:
        For I = 1 To nDir
            Call FindFiles(FolderSpec$ & dirNames$(I), SearchStr$,
FileList$(), _
                           FileCount, DirCount, SizeOfFiles)
        Next I
    End If
'
    FindFiles = (FileCount > 0)
'
AbortFunction:
    Exit Function
'
sysFileERR:
    If Right$(DirName$, 4) = ".sys" Then
        Resume sysFileERRCont
    Else
        MsgBox "Error: " & Err.Number & " - " & Err.Description,
vbCritical, _
        "Unexpected Error in FindFiles"
        Resume AbortFunction
    End If
'
'
'
End Function