Necesito una forma de obtener el tamaño de un archivo usando C #, y no el tamaño en el disco. ¿Cómo es esto posible?
Actualmente tengo este bucle
foreach (FileInfo file in downloadedMessageInfo.GetFiles())
{
//file.Length (will this work)
}
¿Esto devolverá el tamaño o el tamaño en el disco?
Respuestas:
FileInfo.Length
devolverá la longitud del archivo, en bytes (no el tamaño en el disco), así que creo que esto es lo que está buscando.fuente
Si ya tiene una ruta de archivo como entrada, este es el código que necesita:
fuente
FileInfo.Length
hará el truco (según MSDN "[g] obtiene el tamaño, en bytes, del archivo actual"). Hay una buena página en MSDN sobre tareas comunes de E / S.fuente
MSDN FileInfo.Length dice que es "el tamaño del archivo actual en bytes".
Mi búsqueda típica de Google para algo como esto es: msdn FileInfo
fuente
Devuelve la longitud del contenido del archivo
fuente
El tamaño en el disco puede ser diferente si mueve el archivo a otro sistema de archivos (FAT16, NTFS, EXT3, etc.)
Como han dicho otros respondedores, esto le dará el tamaño en bytes, no el tamaño en el disco.
fuente
La propiedad Longitud de la clase FileInfo devuelve el tamaño del archivo (no el tamaño en el disco). Si desea un tamaño de archivo formateado (es decir, 15 KB) en lugar de un valor de byte largo, puede usar CSharpLib , un paquete que he creado que agrega más funcionalidad a la clase FileInfo. Aquí hay un ejemplo:
fuente