I need a way to get the size of a file using C#, and not the size on disk. How is this possible?
Currently I have this loop
foreach (FileInfo file in downloadedMessageInfo.GetFiles())
{
//file.Length (will this work)
}
Will this return the size or the size on disk?
MSDN FileInfo.Length says that it is "the size of the current file in bytes."
My typical Google search for something like this is: msdn FileInfo
Size on disk might be different, if you move the file to another filesystem (FAT16, NTFS, EXT3, etc)
As other answerers have said, this will give you the size in bytes, not the size on disk.
FileInfo.Length
will return the length of file, in bytes (not size on disk), so this is what you are looking for, I think.FileInfo.Length
will do the trick (per MSDN it "[g]ets the size, in bytes, of the current file.") There is a nice page on MSDN on common I/O tasks.It returns the file contents length
i get the size of file with
File.ReadAllBytes(@"D:\\testPA.txt").Length