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 renverra la taille ou la taille sur le disque?
FileInfo.Length
renverra la longueur du fichier, en octets (pas la taille sur le disque), donc c’est ce que vous recherchez, je pense.
Si vous avez déjà un chemin de fichier en entrée, c’est le code dont vous avez besoin:
long length = new System.IO.FileInfo(path).Length;
FileInfo.Length
fera l’affaire (selon MSDN, il “[g] définit la taille, en octets, du fichier en cours.”) Il existe une belle page sur MSDN pour les tâches d’E / S courantes.
MSDN FileInfo.Length dit qu’il s’agit de “la taille du fichier actuel en octets”.
Ma recherche Google typique pour quelque chose comme ceci est: 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 et non la taille du disque.
File.ReadAllBytes(@"D:\\testPA.txt").Length
la taille du fichier avec File.ReadAllBytes(@"D:\\testPA.txt").Length