Prelevare il file meno recente

venerdì 07 dicembre 2007 - 10.15

basicdany Profilo | Expert

salve,
eseguo questo ciclo per aprire dei file contenuti in una cartella, come posso prendere il file scritto meno recente al piu recente, quindi in sostanza ordinarli per data in ordine decrescente



Dim fname As String
Dim Percorso As String = Application.StartupPath & "\update"

For Each fname In Directory.GetFiles(Percorso)

Dim Appo As String = fname 'percorso del file da aprire

Next


Grazie a tutti Questo forum e il migliore!!
grazie

0v3rCl0ck Profilo | Guru

>salve,
Ciao

>eseguo questo ciclo per aprire dei file contenuti in una cartella,
>come posso prendere il file scritto meno recente al piu recente,
>quindi in sostanza ordinarli per data in ordine decrescente
>
>
>
> Dim fname As String
>Dim Percorso As String = Application.StartupPath & "\update"
>
> For Each fname In Directory.GetFiles(Percorso)
>
>Dim Appo As String = fname 'percorso del file da aprire
>
> Next
>

Ovviamente ci sono mille soluzioni, eccotene un esempio:

Private Function GetFileOrdinati(ByVal Percorso As String) As ArrayList Dim retValue As New ArrayList Dim DirInfoPercorso As New IO.DirectoryInfo(Percorso) Dim dtFiles As New DataTable("Files") dtFiles.Columns.Add("LastWriteTime", GetType(Date)) dtFiles.Columns.Add("FileInfo", GetType(IO.FileInfo)) For Each FileInfo As IO.FileInfo In DirInfoPercorso.GetFiles() dtFiles.Rows.Add(FileInfo.LastWriteTime, FileInfo) Next For Each dr As DataRow In dtFiles.Select("", "LastWriteTime") retValue.Add(dr("FileInfo")) Next Return retValue End Function

La funzione ritorna una ArrayList di oggetti FileInfo ordinati per data di ultima scrittura. Se stai utilizzando il framework 2.0 ti consiglio di usare le collezioni generic e fare ritornare alla funzione un Generic.List(Of IO.FileInfo), o comunque anche con l'1.1 puoi crearti una tua collezione tipizzata (non mi piace lavore con gli Object).

>
>Grazie a tutti Questo forum e il migliore!!
>grazie

Enjoy It
http://blogs.dotnethell.it/Regulator/

basicdany Profilo | Expert

ciao, grazie per la risposta provando la procedura in .net 1.1

mi da errore solo copiando il codice a questa riga:

dtFiles.Rows.Add(FileInfo.LastWriteTime, FileInfo)

errore:

overload resolution failed because non accessibil "add"

aspetto gentile risposta, grazie tanto

0v3rCl0ck Profilo | Guru

>ciao, grazie per la risposta provando la procedura in .net 1.1
>
>mi da errore solo copiando il codice a questa riga:
>
>dtFiles.Rows.Add(FileInfo.LastWriteTime, FileInfo)

Si scusa, solo dal 2.0 si può inserire la riga con il ParamArray, ma si può solo inserire oggetti DataRow:

eccoti il pezzo da sostituire all'interno del primo ciclo:

Dim drNew As DataRow = dtFiles.NewRow() drNew("LastWriteTime") = FileInfo.LastWriteTime drNew("FileInfo") = FileInfo dtFiles.Rows.Add(drNew)

>
>errore:
>
>overload resolution failed because non accessibil "add"
>
>aspetto gentile risposta, grazie tanto
Prego


http://blogs.dotnethell.it/Regulator/

basicdany Profilo | Expert

ciao, grazie, perfetto la funzione mi restuisce i percorsi in ordine di inserimento, ultima cosa, per prendere da ogni singolo elemento dell'array il percorso come dato di tipo stringa come devo fare.


grazie tanto.
ciao

0v3rCl0ck Profilo | Guru

>ciao, grazie, perfetto la funzione mi restuisce i percorsi in
>ordine di inserimento, ultima cosa, per prendere da ogni singolo
>elemento dell'array il percorso come dato di tipo stringa come
>devo fare.

CType(ArrayFileOrdinato(0), IO.FileInfo).FullName

>
>
>grazie tanto.
>ciao
Ciao

http://blogs.dotnethell.it/Regulator/

basicdany Profilo | Expert

Ok, funziona tutto, non so come ringraziarti.
ciao alla prossima

0v3rCl0ck Profilo | Guru

>Ok, funziona tutto, non so come ringraziarti.
Mi basta esserti stato di aiuto!

>ciao alla prossima
Ciao

http://blogs.dotnethell.it/Regulator/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5