从 UWP (C#) 调用 GetDiskFreeSpaceExA

问题描述

我正在开发一个 UWP 应用程序(C#、Visual Studio 2019),我想知道 C: 的总数、用户免费空间和可用空间。为了做到这一点,我想调用 GetDiskFreeSpaceExA(关于 GetDiskFreeSpaceExA:https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getdiskfreespaceexa)。

我尝试了以下方法:

[DllImport("kernel32.dll",SetLastError = true,CharSet = CharSet.Auto)]
 [return: MarshalAs(UnmanagedType.Bool)]
 static extern bool GetDiskFreeSpaceExA(string path,out ulong freeBytesForUser,out ulong totalNumberOfBytes,out ulong totalNumberOfFreeBytes);

然后,我调用 GetDiskFreeSpaceExA:

ulong freeUser;
ulong total;
ulong free;
string pathC= @"C:\"; // also tried with "C:\\" and @"C:\\"
bool success =  GetDiskFreeSpaceExA(pathC,out freeUser,out total,out free);

if(success)
{
     // ...
}

成功总是假的。为什么?如何从 UWP 中找到 C: 上的空间?我知道有一些 C# 方法,但我想要 DLL。

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)