Newsgroup: it.comp.appl.access
Titolo: Leggere contenuto Directory...Ordinamento file

Ciao ragazzuoli... come da oggetto, voglio leggere semplicemente il
contenuto di una Directory cos� come segue...
    Dim MyPath As String
    Dim MyName As String
    MyPath = Startpath
    MyName = Dir(MyPath)
    Do While MyName <> ""
        debug.print MyName
        MyName = Dir
    Loop
vorrei solo capire se c'� un metodo da impostare per poter dare un ordine
di lettura al contenuto, non s�, tipo per data creazione, per ordine
crescente, per dimensione... roba del genere...
Sapete come fare e ovviamente se si pu�?... al momento segue le
impostastioni di winzozz...
-- 
Ciao
Pablitomf
-----------------------------------
Propongo 4-4-2 con il Rombo a centrocampo : 
De Sanctis
Zuniga-Campagnaro-Contini-Aronica
Maggio-Cigarini-Gargano-Hamsik
Lavezzi-Quagliarella
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 impostastioni di winzozz...
Con Dir non puoi impostare ordini particolari, come dice l'help (che palle
'sto help, vuole avere sempre ragione lui!). Se li vuoi ordinati per nome
ti basta metterli in una tabella o matrice e ordinarli, se li vuoi
ordinati in altro modo devi usare altri sistemi, per esempio creare un
file di testo e importarlo, e l� puoi avere tutti i dati che vuoi:
  Shell "cmd.exe /c dir /oen C:Programmi > D:file.txt"
O puoi usare Dir per recuperare i nomi dei files, e scripting per le
propriet�:
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile("c:windowsnotepad.exe")
Debug.Print "Date created: " & objFile.DateCreated
Debug.Print "Date last accessed: " & objFile.DateLastAccessed
Debug.Print "Date last modified: " & objFile.DateLastModified
Debug.Print "Drive: " & objFile.Drive
Debug.Print "Name: " & objFile.Name
Debug.Print "Parent folder: " & objFile.ParentFolder
Debug.Print "Path: " & objFile.Path
Debug.Print "Short name: " & objFile.ShortName
Debug.Print "Short path: " & objFile.ShortPath
Debug.Print "Size: " & objFile.Size
Debug.Print "Type: " & objFile.Type
Ciao.
-Marco-
-- 


 -Marco-
eh, sto help � una rottura! (speravo in qualche Api) :D
cmq gi� uso scripting x le propriet�, era solo una questione di settaggio
a volo che mi interessava, senza passare da tabelle o da scripting...
peccato.. mi dovr� tenere la lettura nativa ;) denghiuverimacc
-- 
Ciao
Pablitomf
-----------------------------------
Propongo 4-4-2 con il Rombo a centrocampo : 
De Sanctis
Zuniga-Campagnaro-Contini-Aronica
Maggio-Cigarini-Gargano-Hamsik
Lavezzi-Quagliarella
questo articolo e` stato inviato via web dal servizio gratuito 


 impostastioni di winzozz...
Ti incollo una funzione di una mia maschera.
La dichiarazione delle variabili a livello di modulo non le ho inserite, 
cos� come altre chiamate...
... devi referenziare scrrun.dll della %windidir%\system32
Come vedi � pi� "pesante" La gestione del file testo generato che 
l'obiettivo
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'Crea il file da allegare all'email contente la lista dei file della 
directory dell'host
'Si utilizza un recordset al volo in memoria per consentire l'ordinamento
Private Function CreaListaFileDirectory(ByVal strPath As String) As Boolean
On Error GoTo Err_CreaListaFileDirectory
    Dim objFSO As Scripting.FileSystemObject
    Dim objFiles As Scripting.Files
    Dim objFile As Scripting.File
    Dim curTotalSize As Currency
    Dim curGroupSize As Currency
    Dim intGroupCount As Integer
    Dim intFileNumber As Integer
    Dim rstFiles As ADODB.Recordset
    Set rstFiles = New ADODB.Recordset
    Dim lngOldDateShort As Long
    meStrTitoloTask = ">CREA LISTA FILE DIRECTORY... "
    meSngStartTask = Timer
    Me.LogStatus = Me.LogStatus & _
        meStrTitoloTask & vbCrLf
    AggiornaLogStatus
    intFileNumber = FreeFile
    Open meStrNomeFile & ".txt" For Output As #intFileNumber
    Print #intFileNumber, Now() & " - Directory di \\" & GetComputerName & 
" - " & strPath
    Print #intFileNumber, ""
    Print #intFileNumber, _
        Left("Nome File" & Space(50), 50) & _
        Left("Dimensione" & Space(16), 16) & _
        Left("Ora Ultima Modifica" & Space(20), 20)
    Print #intFileNumber, String((50 + 16 + 3 + 3 + 20), "-")
    Print #intFileNumber, ""
    With rstFiles
        .CursorLocation = adUseClient
        .LockType = adLockOptimistic
        .CursorType = adOpenDynamic
        .ActiveConnection = Nothing
        .Fields.Append "Name", adChar, 256
        .Fields.Append "Path", adChar, 256
        .Fields.Append "FullName", adChar, 256
        .Fields.Append "DateLastModified", adDate
        .Fields.Append "DateShort", adInteger
        .Fields.Append "Size", adDecimal, 12
        .Open
        'Popola il recordset
        Set objFSO = New Scripting.FileSystemObject
        Set objFiles = objFSO.GetFolder(strPath).Files
        For Each objFile In objFiles
            .AddNew _
                Array( _
                    "Name", _
                    "FullName", _
                    "DateLastModified", _
                    "DateShort", _
                    "Size"), _
                Array( _
                    objFile.Name, _
                    objFile.Path, _
                    objFile.DateLastModified, _
                    CLng(CDate(Format(objFile.DateLastModified, 
"dd/mm/yyyy"))), _
                    objFile.size)
            .Update
        Next objFile
        Set objFile = Nothing
        Set objFiles = Nothing
        .Sort = "DateShort DESC, Name ASC"
        curTotalSize = 0
        If Not .EOF Then
            lngOldDateShort = 0
            intGroupCount = 0
            curGroupSize = 0
            While Not .EOF
                If lngOldDateShort <> .Fields("DateShort") Then
                    If lngOldDateShort <> 0 Then
                        Print #intFileNumber, _
                            Space(30) & intGroupCount & " File   " & _
                            Right(Space(16) & Format(Int(curGroupSize), 
"#,###"), 16) & " bytes"
                    End If
                    Print #intFileNumber, ""
                    Print #intFileNumber, 
Format(.Fields("DateLastModified"), "dddd, d mmm yyyy")
                    Print #intFileNumber, String(30, "-")
                    intGroupCount = 0
                    curGroupSize = 0
                End If
                Print #intFileNumber, _
                    Left(.Fields("Name") & Space(50), 50) & _
                    Right(Space(16) & Format(.Fields("Size"), "#,###"), 16) 
& "   " & _
                    Left(Format(.Fields("DateLastModified"), " hh:mm:ss") & 
Space(20), 20)
                curTotalSize = curTotalSize + CCur(.Fields("Size"))
                curGroupSize = curGroupSize + CCur(.Fields("Size"))
                intGroupCount = intGroupCount + 1
                lngOldDateShort = .Fields("DateShort")
                .MoveNext
            Wend
        End If
        If lngOldDateShort <> 0 Then
            Print #intFileNumber, _
                Space(30) & intGroupCount & " File   " & _
                Right(Space(16) & Format(Int(curGroupSize), "#,###"), 16) & 
" bytes"
        End If
        Print #intFileNumber, ""
        Print #intFileNumber, String((50 + 16 + 3 + 3 + 20), "-")
        Print #intFileNumber, _
            Space(30) & .RecordCount & " File   " & _
            Right(Space(16) & Format(Int(curTotalSize / 1024), "#,###"), 16) 
& " Kbytes"
        .Close
    End With
Exit_CreaListaFileDirectory:
    On Error Resume Next
    DoEvents
    Me.LogStatus = Me.LogStatus & _
        Now() & meStrNomeFile & ".txt" & " contiene le lista dei file 
sull'host (allegato email)" & vbCrLf
    Print #intFileNumber, ""
    Close #intFileNumber
    Set rstFiles = Nothing
    Set objFiles = Nothing
    Set objFSO = Nothing
    Me.LogStatus = Me.LogStatus & vbCrLf
    AggiornaTempoTrascorsoTask meStrTitoloTask, meSngStartTask
    Exit Function
Err_CreaListaFileDirectory:
    Me.LogStatus = Me.LogStatus & _
        Now() & " - Failure! " & _
        "Errore Imprevisto su CreaListaFileDirectory - " & Err.Number & ": " 
& Err.Description & vbCrLf
    Resume Exit_CreaListaFileDirectory
End Function
Ciao
Daniele