我有一个文本文件,其中我放置了Space Required,这个值(以kB为单位)我用:
提取string SpaceRequired = lines.Where(txt => txt.Contains("SpaceRequired"))
.Select(txt => txt.Split('=')[1].Replace("\"", ""))
.FirstOrDefault();
和我需要比较的freeSpace:
var drive = new DriveInfo("c");
long freeSpaceInC = drive.TotalFreeSpace;
private static string toReadableSize(long size)
{
if (size < 1024 * 1024)
return Math.Round(((float)size / 1024), 2) + "KB";
if (size < 1024 * 1024 * 1024)
return Math.Round(((float)size / (1024 * 1024)), 2) + "MB";
return Math.Round(((float)size / (1024 * 1024 * 1024)), 2) + "GB";
}
我试图在这里进行比较:
private void Next_Click(object sender, EventArgs e)
{
if (textBox1.Text.StartsWith("C:"))
{
/*if (freeSpaceInC >= SpaceRequired)
{
this.Visible = false;
Form2 fm = new Form2();
fm.ShowDialog();
}
else
MessageBox.Show("You don't have free space");*/
}
但我不知道这样做。我需要比较kB中的值,因为在文本文件中我有以kB为单位。我怎么能这样做?
答案 0 :(得分:0)
你必须解析字符串,然后你将kb作为long
。由于TotalFreeSpace
以字节为单位返回驱动器上可用空间总量,因此必须将其乘以1000:
long reqKB = long.Parse(SpaceRequired);
long reqBytes = 1000 * reqKB;
if (freeSpaceInC >= reqBytes)
{
// ..
}