J'ai une liste avec 4 colonnes - nom, extension, taille et emplacement. J'ai une méthode qui prend la taille de fichier en octets et convertit en KB, MB, GB, etc. selon les besoins. Un exemple de sortie serait un fichier de 1024 octets qui est imprimé en "1KB". Cette valeur est ensuite placée dans la liste.Comment trier un listview par taille de fichier?
Ce que je dois faire est de trier intelligemment la colonne de taille. À l'heure actuelle, le tri n'est qu'une simple comparaison, donc 1025 Ko est supérieur à 1024 Mo. Comment puis-je le faire "taille conscient"?
Mon code actuel de tri est de ce KB article: http://support.microsoft.com/kb/319401 Et voici mon code qui génère le texte de la taille du fichier:
public static string getDynamicFileSize(string fileName)
{
FileInfo fi = new FileInfo(fileName);
long sizeInBytes = fi.Length;
if (sizeInBytes >= 1073741824)
{
double sizeInGB = sizeInBytes/Math.Pow(1024, 3);
return Math.Round(sizeInGB, 2) + " GB";
}
if (sizeInBytes >= 1048576)
{
double sizeInMB = sizeInBytes/Math.Pow(1024, 2);
return Math.Round(sizeInMB, 2) + " MB";
}
if (sizeInBytes >= 1024)
{
double sizeInKB = sizeInBytes/Math.Pow(1024,1);
return Math.Round(sizeInKB, 2) + " KB";
}
//No conversion needed
return sizeInBytes + " bytes";
}
Merci.
travaillé comme un charme, merci. –