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

    [vb expr 2005] elencare i files di una dir in ordine di data-ora di ultima modifica

    Salve gente!
    Ho un problema semplice (non per me).

    Utilizzo questa linea:
    Dim fileEntries As String() = System.IO.Directory.GetFiles("c:\dirname")

    per elencare tutti i files nella directory c:\dirname .

    Così facendo ho un array (di stringhe) ordinato secondo i nomi di files (alfabeticamente da a in su).

    In realtà a me servirebbe che quell'array fosse ordinato secondo la data-ora dell'ultima modifica al file.

    C'è una maniera semplice per avere queste informazioni?

    C'è un modo per avere tutti i files (elencati in ordine crescente di data-ora di modifica) in una directory?

    Grazie in anticipo
    Make Pazziata-tàààà NOT war!

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    798
    devi creare una classe che implementi l'interfaccia IComparer ed un metodo Compare che implementi IComparer.Compare ed il codice x il sort che vuoi fare, esempio:

    codice:
        Private Class FileDateSorter : Implements IComparer 
            Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare 
                Dim xFi As System.IO.FileInfo = CType(x, System.IO.FileInfo) 
                Dim yFi As System.IO.FileInfo = CType(y, System.IO.FileInfo) 
                If xFi.CreationTime < yFi.CreationTime Then Return 1 
                If xFi.CreationTime > yFi.CreationTime Then Return -1 
                If xFi.CreationTime = yFi.CreationTime Then Return 0 
            End Function 
        End Class
    e poi utilizzare FileInfo e DirectoryInfo di System.IO

    codice:
    Dim fileInfos() As System.IO.FileInfo 
    Dim dirInfo As New System.IO.DirectoryInfo("c:\dirname") 
    fileInfos = dirInfo.GetFiles 
    fileInfos.Sort(fileInfos, New FileDateSorter)
    non ho provato ma il concetto è quello
    Ans.

  3. #3
    Grazie!!!

    Proverò e ti farò sapere.

    Ciao
    Make Pazziata-tàààà NOT war!

  4. #4
    Utente di HTML.it L'avatar di a.felix
    Registrato dal
    Sep 2001
    Messaggi
    337
    più correttamente con il 2005 sarebbe ad esempio se devi elencarlo su una check
    codice:
        Public Sub CaricaFileXml()
            rbNewsToMail.Items.Clear()
            Dim fileInfos() As System.IO.FileInfo
            Dim dirInfo As New System.IO.DirectoryInfo(System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath & "Public\MyPublic\")
            fileInfos = dirInfo.GetFiles("*.xml")'miotipo
            Dim fInfo As New System.Collections.Generic.List(Of System.IO.FileInfo)()
            fInfo.AddRange(fileInfos)
            fInfo.Sort(New FileDateSorter())
            For Each f As System.IO.FileInfo In fInfo
                Dim xi As New ListItem(( f.Name.Remove(f.Name.LastIndexOf(".")) ), f.Name)
                MiaCheck.Items.Add(xi)
            Next
        End Sub
    e la classe
    codice:
    Class FileDateSorter : Implements Generic.IComparer(Of System.IO.FileInfo)
        Public Function Compare(ByVal x As System.IO.FileInfo, ByVal y As System.IO.FileInfo) As Integer Implements System.Collections.Generic.IComparer(Of System.IO.FileInfo).Compare
            Return Date.Compare(x.LastWriteTime, y.LastWriteTime)
        End Function
    End Class

    Antonio F.

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