« Nuova Yamaha Tènèrè 1200 | Main | Yourminis widget e BloggerItaliani.com »
Ordinare i file di un DirectoryInfo per reverse date
By Merlinox | February 14, 2008
In asp.net è possibile ottenere tutti i file di una directory (oggetto DirectoryInfo) utilizzando il metodo GetFiles() che restituisce un array di oggetti FileInfo.
Se proviamo a fare l’output di questo array ci aggiorgiamo che non abbiamo modo di ordinarlo per data, e soprattutto per data inversa. Utilizziamo per farlo un oggetto SortedList e una piccola classe del tipo ICompare. L’oggetto SortedList permette di inserire una lista di elementi con chiave e valore (key, value).
Ecco il codice completo:
public class myReverserClass : IComparer<DateTime>
{
#region IComparer<DateTime> Members
public int Compare(DateTime x, DateTime y)
{
return DateTime.Compare(y, x);
}
#endregion
}
//recupero file creati
FileInfo[] filesLast = rootTmpInfo.GetFiles();
//creo una sorted list e la popolo
IComparer<DateTime> myComparer = new myReverserClass();
SortedList<DateTime, FileInfo> filesLastSL = new SortedList<DateTime, FileInfo>(myComparer);
foreach (FileInfo fi in filesLast)
{
filesLastSL.Add(fi.LastWriteTime, fi);
}
//colonne dati
foreach (KeyValuePair<DateTime,FileInfo> fik in filesLastSL)
{
FileInfo fi = fik.Value;
Response.write("chiave: " + fik.key + " Nome file: " + fi.Name);
}
Cosa abbiamo fatto:
- abbiamo creato la SortedList, l’abbiamo popolata partendo dall’array
- abbiamo quindi creato un oggetto ICompare tipizzato DateTime (ICompare<DateTime>)
- abbiamo prodotto l’output dalla SortedList.
Grazie infinite a Davide per il supporto fisico / morale.
Tags: asp.net, programmazione
Post simili





