J'ai besoin d'un moyen d'obtenir la taille d'un fichier en utilisant C #, et non la taille sur le disque. Comment est-ce possible?
Actuellement j'ai cette boucle
foreach (FileInfo file in downloadedMessageInfo.GetFiles())
{
//file.Length (will this work)
}
Est-ce que cela va retourner la taille ou la taille sur le disque?
FileInfo.Length
renverra la longueur du fichier, en octets (pas la taille sur le disque), c'est donc ce que vous recherchez, je pense.
Si vous avez déjà un chemin de fichier en entrée, vous avez besoin du code suivant:
long length = new System.IO.FileInfo(path).Length;
FileInfo.Length
fera l'affaire (selon MSDN, cela "[g] ets la taille, en octets, du fichier actuel.") Il y a un Nice page sur MSDN sur les tâches d'E/S courantes.
MSDN FileInfo.Length indique qu'il s'agit de "la taille du fichier actuel en octets".
Ma recherche Google type ressemble à ceci: msdn FileInfo
Il retourne la longueur du contenu du fichier
La taille sur le disque peut être différente si vous déplacez le fichier vers un autre système de fichiers (FAT16, NTFS, EXT3, etc.)
Comme d'autres intervenants l'ont dit, cela vous donnera la taille en octets, pas la taille sur le disque.