gpt4 book ai didi

c# - 找出网络核心 3.x 中网络 UNC 路径上的可用空间和总空间

转载 作者:行者123 更新时间:2023-12-04 10:16:21 25 4
gpt4 key购买 nike

我正在更新一个以前使用 AlphaFS 为本地和网络路径提供 IO 操作的应用程序。

其中一项功能是返回驱动器可用空间和可用空间。
如果驱动器是本地驱动器或使用 DriveInfo 映射,这可以正常工作

 var pathRoot = System.IO.Path.GetPathRoot(startPath);
var driveInfo = new DriveInfo(pathRoot);
AvailSpace = (ulong) driveInfo.AvailableFreeSpace;
TotalSpace = (ulong) driveInfo.TotalSize;

但对于 UNC 路径,它会出错
Drive name must be a root directory (i.e. 'C:\\') or a drive letter ('C'). "

是否有合适的 DriveInfo 替代方案可用于 .netcore 3.x 中的网络 unc 路径?

最佳答案

如果您的应用程序只在 Windows 上运行,您可以尝试 GetDiskFreeSpaceEx ,其中 MSDN docs说它支持UNC路径。

[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool GetDiskFreeSpaceEx(string lpDirectoryName,
out ulong lpFreeBytesAvailable,
out ulong lpTotalNumberOfBytes,
out ulong lpTotalNumberOfFreeBytes);

GetDiskFreeSpaceEx("\\\\server\\path\\", out var size, out var _, out var __);

关于c# - 找出网络核心 3.x 中网络 UNC 路径上的可用空间和总空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61037184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com