我在网络上有一个共享文件夹,我想知道该文件夹的总大小以及特定文件夹使用的内存百分比。
此刻我正在使用此代码。
namespace DiskFreeSpaceEx
{
internal class FreeSpace
{
[DllImport("kernel32")]
public static extern int GetDiskFreeSpaceEx(string lpDirectoryName, ref long lpFreeBytesAvailable, ref long lpTotalNumberOfBytes, ref long lpTotalNumberOfFreeBytes);
const string RootPathName = @"\\Server\Sharename\Folder\Subfolder\...\TargetFolder";
private static void Main(string[] args)
{
long freeBytesAvailable = 0;
long totalNumberOfBytes = 0;
long totalNumberOfFreeBytes = 0;
GetDiskFreeSpaceEx(RootPathName, ref freeBytesAvailable, ref
totalNumberOfBytes, ref totalNumberOfFreeBytes);
Console.WriteLine("{0}\t{1}\t{2}\t{3}", RootPathName,
freeBytesAvailable, totalNumberOfBytes, totalNumberOfFreeBytes);
long percentage = (totalNumberOfBytes - freeBytesAvailable) * 100 / totalNumberOfBytes;
Console.WriteLine(percentage.ToString());
Console.ReadKey();
}
}
}
通过这种配置,我的使用率达到了86%(这意味着其容量的86%充满了数据,而〜14%的空间是免费的)
来源:https://docs.microsoft.com/ja-jp/windows/desktop/api/FileAPI/nf-fileapi-getdiskfreespaceexa
但是后来我通过资源管理器使用文件夹属性找出了99.8%的存储空间。这是什么意思?哪个更信任?