我需要在分区上获得总的和可用的大小.我怎么能用D得到它?我应该使用哪些功能?
在Posix系统(包括Linux,但通常不是Windows)上,您可以使用statvfs
C函数,该函数在D via中可用import core.sys.posix.sys.statvfs;
.
一般来说,任何Posix C函数都在与换出的C 名相同的import core.sys.posix.something
地方.something
#cinlude
/
.
无论如何,这个小程序将打印出一些关于安装在"/"
以下位置的文件系统的信息:
import core.sys.posix.sys.statvfs; import std.stdio; void main() { statvfs_t buf; if(statvfs("/", &buf)) throw new Exception("failed"); writeln(buf.f_bfree * buf.f_bsize, " free bytes"); writeln(buf.f_blocks * buf.f_bsize, " total size in bytes"); writeln((buf.f_bfree * buf.f_bsize) / 1024, " free KB"); writeln((buf.f_blocks * buf.f_bsize) / 1024, " total size in KB"); writeln(100 - (buf.f_bfree * 100 / buf.f_blocks), "% used"); }
这是一个非常简单的函数调用.在Windows上,它是不同的,但同样容易:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa364937%28v=vs.85%29.aspx
只需调用该功能.我也可以为你写一个例子,如果你需要一个,但我现在没有,因为包含它的更新的Windows标题将在几周后的下一个D版本中被包括在内,所以你extern(Windows)
现在必须要它......但是在几周内你就不必这么做了.