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 retournera la taille ou la taille sur le disque?
Réponses:
FileInfo.Length
retournera la longueur du fichier, en octets (pas la taille sur le disque), c'est donc ce que vous recherchez, je pense.la source
Si vous avez déjà un chemin de fichier en entrée, voici le code dont vous avez besoin:
la source
FileInfo.Length
fera l'affaire (par MSDN, il "[g] ets la taille, en octets, du fichier actuel.") Il y a une belle page sur MSDN sur les tâches d'E / S courantes.la source
MSDN FileInfo.Length indique qu'il s'agit de "la taille du fichier actuel en octets".
Ma recherche Google typique pour quelque chose comme ceci est: msdn FileInfo
la source
Il renvoie la longueur du contenu du fichier
la source
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 répondants l'ont dit, cela vous donnera la taille en octets, pas la taille sur le disque.
la source
La propriété Length de la classe FileInfo renvoie la taille du fichier (pas la taille sur le disque). Si vous voulez une taille de fichier formaté (c'est-à-dire 15 Ko) plutôt qu'une valeur d'octet long, vous pouvez utiliser CSharpLib , un package que j'ai créé qui ajoute plus de fonctionnalités à la classe FileInfo. Voici un exemple:
la source