首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在netcore 3.x中查找网络unc路径上的空闲空间和总空间

在netcore 3.x中查找网络unc路径上的空闲空间和总空间
EN

Stack Overflow用户
提问于 2020-04-05 02:12:27
回答 1查看 446关注 0票数 4

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

其中一个功能是返回驱动器自由和可用的空间。如果驱动器是本地的或使用DriveInfo映射的,这很好。

代码语言:javascript
复制
 var pathRoot = System.IO.Path.GetPathRoot(startPath);
 var driveInfo = new DriveInfo(pathRoot);
 AvailSpace = (ulong) driveInfo.AvailableFreeSpace;
 TotalSpace = (ulong) driveInfo.TotalSize;

但是对于unc路径,它将出错

驱动器名必须是根目录(即'C:\')或驱动器字母('C')。

对于DriveInfo核心3.x中的网络unc路径,是否有适合的替代方案?

EN

回答 1

Stack Overflow用户

发布于 2020-04-05 10:54:39

如果您的应用程序仅在Windows上运行,则可以尝试GetDiskFreeSpaceExMSDN文档表示它支持UNC路径。

代码语言:javascript
复制
[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 __);
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61037184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档