windows如何计算文件维度?

时间:2015-04-01 07:39:36

标签: c# windows file-io dimension

我使用此函数计算文件的二进制大小:


public static int BinarySize(string path)
        {
            FileStream fs = new FileStream(path, FileMode.Open);
            int hexIn;
            string ret = "";
            for (int i = 0; (hexIn = fs.ReadByte()) != -1; i++)
            {
                ret += Convert.ToString(hexIn, 2);

            }
            fs.Close();
            return ret.Length;
        }

我的问题的一个例子是我计算这个简单的黑色PNG图像的尺寸(10x10像素)myImage

使用该功能,我发现640位=> 80字节,但窗口说这个文件维度是136字节。 为什么这个56字节的差异? Windows附加到每个文件的安全性,权限或一些私人信息是什么?

1 个答案:

答案 0 :(得分:4)

Convert.ToString(hexIn,2)并不总是返回8个字符,它会修剪前导零,因此如果hexIn4,则会返回100,但不会返回00000100

您可能希望将其更改为Convert.ToString(hexIn,2).PadLeft(8, '0');。 此外,您还需要使用StringBuilder代替string ret变量。

顺便说一下,读取文件来确定它的大小有点浪费。最好使用FileInfo类来获取文件信息。