0

DriveInfo クラスを使用して、次の方法でディスクの空き容量を計算しました。しかし、マイ コンピュータに表示される空きディスク容量の値と一致しません。次のメソッドは 106 GB の空き容量を返しますが、MyComputer には 98.8 GB の空き容量しか表示されません。正確な値を計算するにはどうすればよいですか? なぜ違いがあるのですか?

public long GetTotalFreeSpace(string driveName)
    {
        foreach (DriveInfo drive in DriveInfo.GetDrives())
        {
            if (drive.IsReady && drive.Name == driveName)
            {
                return drive.TotalFreeSpace;
            }
        }
        return -1;
    }
4

1 に答える 1

1

2 つの規則があります。1 つは 1 kB = 1000 バイト、もう 1 つは 1 kB = 1024 バイトです。2 つ目はkibibyteとも呼ばれます。

これはすべての違いを説明しています:
106 * 1000 * 1000 * 1000 ~= 98.8 * 1024 * 1024 * 1024.

だから、違いはそこから来ていると思います。

于 2016-07-10T14:38:47.997 に答える