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?
FileInfo.Length will return the length of file, in bytes (not size on disk), so this is what you are looking for, I think.
If you have already a file path as input, this is the code you need:
long length = new System.IO.FileInfo(path).Length;
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.
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
It returns the file contents length
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.
i get the size of file with File.ReadAllBytes(@"D:\\testPA.txt").Length
来源:https://stackoverflow.com/questions/1380839/how-do-you-get-the-file-size-in-c