У меня есть общая папка в сети, в которой я хочу узнать ее общий размер, а также процент памяти, используемой из определенной папки.
В данный момент я использую этот код.
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% хранилища, используя свойства папок через Проводник.Что это значит?Который более доверчив?