【问题标题】:Programmatically determining space available from UNC Path以编程方式确定 UNC 路径中的可用空间
【发布时间】:2010-01-12 16:11:53
【问题描述】:

是否有用于从 UNC 路径确定 NAS 存储上的可用空间的编程 API?我查看了 WMI 文档,并不清楚这是否可行。

非常感谢您提供代码示例和对相关 API 调用的引用。

【问题讨论】:

  • 如果一个 mod 看到这个,这可能应该被标记为 61037184 的副本。是的,这个问题首先出现,但是这里有一个唯一被赞成的答案的实际实现,并且引入 dll 是非微不足道,所以这些细节是相关的。

标签: .net winapi wmi


【解决方案1】:

在 windows API 中,GetFreeDiskSpaceEx 似乎是要使用的方法,根据MSDN docs,它适用于 UNC 路径。

【讨论】:

  • GetDiskFreeSpaceEx 在 VB.Net 中不可用。您如何在 VB.Net(不是 C!)中的 UNC 路径上找到可用空间
  • @Tym 您可以使用 .Net DllImport 基础架构调用 Windows dll
【解决方案2】:

使用this example获取UNC路径,你可以直接返回FreeSpace属性,我修改了下面的代码:

ManagementPath path = new ManagementPath(@"\" + System.Environment.MachineName + @"\root\cimv2");
ObjectQuery query = new ObjectQuery("select * from Win32_LogicalDisk WHERE DriveType = 4");
ManagementScope scope = new ManagementScope(path, new ConnectionOptions());
ManagementObjectSearcher search = new ManagementObjectSearcher(scope, query);

foreach (ManagementObject o in search.Get())
{
    Console.WriteLine(o.Properties["FreeSpace"].Value.ToString());
}

【讨论】:

  • 我认为这仅在 UNC 路径已经“映射”到逻辑磁盘(带有驱动器号,例如 Z:)时才有效。如果您想检查未映射的服务器上的可用空间怎么办?
猜你喜欢
  • 1970-01-01
  • 2010-10-29
  • 1970-01-01
  • 2016-08-20
  • 2011-11-13
  • 1970-01-01
  • 2010-11-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多