1
11
怎么样
this link from MSDN
它使用
|
2
11
你可以使用 GetDiskFreeSpaceEx from kernel32.dll 它与UNC路径和驱动器一起工作。您需要做的只是包含一个dllimport(请参见链接以获取示例)。 |
3
3
这个 可以 不是你想要的,但我正在努力帮助你,它的好处是可以稍微安全地删除你的硬盘空间。
|
4
2
实际上不是一个C示例,但可能会给您一个提示-一个vb.net函数沿指定路径返回驱动器上的可用空间和总空间量(以字节为单位)。也适用于UNC路径,与system.io.driveinfo不同。 VB.NET:
|
5
1
system.io.driveinfo工作正常。我连接到两个单独的Netware服务器,并映射了几个驱动器。 这是本地C:驱动器:
以下是其中一个网络驱动器的输出:
我直接从DriveInfo上的msdn docs中使用了以下代码: using System; using System.IO; class Test { public static void Main() { DriveInfo[] allDrives = DriveInfo.GetDrives(); foreach (DriveInfo d in allDrives) { Console.WriteLine("Drive {0}", d.Name); Console.WriteLine(" File type: {0}", d.DriveType); if (d.IsReady == true) { Console.WriteLine(" Volume label: {0}", d.VolumeLabel); Console.WriteLine(" File system: {0}", d.DriveFormat); Console.WriteLine( " Available space to current user:{0, 15} bytes", d.AvailableFreeSpace); Console.WriteLine( " Total available space: {0, 15} bytes", d.TotalFreeSpace); Console.WriteLine( " Total size of drive: {0, 15} bytes ", d.TotalSize); } } } } |
6
1
还有一种可能,我已经用了很多年了。下面的示例是vbscript,但它应该与任何COM感知语言一起工作。注意
|
7
1
Maksim-Sestic给出了最好的答案,因为它可以在本地和UNC路径上工作。为了更好地处理错误,我稍微修改了他的代码,并包括了一个示例。对我来说就像是一种魅力。 你需要放
在您的代码中,允许识别dllimport。 以下是修改后的代码:
这样称呼:
foldername也可以是本地目录,例如
它仍然在vb.net中,但将其转换为c应该不是问题。 |
8
0
我很肯定这是不可能的。在Windows资源管理器中,如果我尝试获取一个UNC目录的文件夹属性,它就不会给我提供尽可能多的可用空间。已用/可用空间是驱动器的一个特征,而不是文件夹,并且UNC共享仅被视为文件夹。
您必须:
您还可能会遇到分布式文件系统之类的问题,其中一个UNC/映射共享没有绑定到任何特定的驱动器,因此您必须在其中实际总结几个驱动器。 那么用户配额呢?驱动器可能未满,但您用于写入该文件夹的帐户可能已达到其限制。 |
9
0
不是C,只提供了可用空间,但是。…
让你成为其中一员。我正在寻找相同的解决方案,但似乎没有一个很好的解决方案-尤其是在试图避免映射驱动器时。 |
rs_ · 命令df-h提供100%的磁盘使用率,即使磁盘未满[关闭] 7 年前 |
Joe Lloyd · 服务器磁盘空间似乎不正确,为什么? 9 年前 |
Connor M · R使用RecordLinkage包 9 年前 |
SteeveDroz · 引擎盖下面的一团是什么? 10 年前 |