【发布时间】:2012-01-08 21:29:59
【问题描述】:
我对这个有点陌生,所以我就开始吧。 我试图弄清楚如何检查任何驱动器是否有 30 GB 磁盘空间, 到目前为止,我似乎只能检查 C: 驱动器。
可能与 CopyAvailableCheck() 仅检查它获得的第一个值有关,该值来自 C: 驱动器,但我不知道如何解决这个问题。
任何帮助将不胜感激。 这是我的代码:
public class DriveCheck
{
private void CopyAvailableCheck()
{
if (FreeDriveSpace() == 1)
{
// do something
}
else if (FreeDriveSpace() == 0)
{
// Something Else
}
else if (FreeDriveSpace() == -1)
{
// Something else
}
}
public static int FreeDriveSpace()
{
DriveInfo[] allDrives = DriveInfo.GetDrives();
foreach (DriveInfo d in allDrives)
{
if (d.IsReady == true)
{
// If total free space is more than 30 GB (default)
if (d.TotalFreeSpace >= 32212254720) // default: 32212254720
{
return 1; // If everything is OK it returns 1
}
else
{
return 0; // Not enough space returns 0
}
}
}
return -1; // Other error returns -1
}
}
【问题讨论】:
-
你似乎有 C 或 C++ 经验:)
-
您认为返回驱动器名称而不是“0”或“1”是否有意义?
-
你可以用
d.IsReady替换这个d.IsReady == true -
但是如果有足够的空间,您的代码将在 C: 驱动器之后停止,这似乎正确吗?换句话说,问题是什么?