当前位置:  开发笔记 > 运维 > 正文

D:如何在媒体/分区上获得可用磁盘空间?

如何解决《D:如何在媒体/分区上获得可用磁盘空间?》经验,为你挑选了1个好方法。

我需要在分区上获得总的和可用的大小.我怎么能用D得到它?我应该使用哪些功能?



1> Adam D. Rupp..:

在Posix系统(包括Linux,但通常不是Windows)上,您可以使用statvfsC函数,该函数在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)现在必须要它......但是在几周内你就不必这么做了.

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有