如何在Windows中获取驱动器的总大小
发布时间:2020-12-14 01:35:52 所属栏目:Windows 来源:网络整理
导读:我希望使用标准的 windows api调用在Go窗口中获取驱动器的总大小; 我找到this来获得免费空间. 现在我想要特殊驱动器的总空间大小 C: 解决方法 您链接的问题答案显示了如何获得可用空间.该解决方案使用kernel32.dll中的 GetDiskFreeSpaceExW() windows API函
我希望使用标准的
windows api调用在Go窗口中获取驱动器的总大小;
我找到this来获得免费空间. 现在我想要特殊驱动器的总空间大小
解决方法
您链接的问题答案显示了如何获得可用空间.该解决方案使用kernel32.dll中的
GetDiskFreeSpaceExW() windows API函数来获取它.
同样的功能也可用于获得总大小. GetDiskFreeSpaceExW()函数的签名: BOOL GetDiskFreeSpaceExW( LPCWSTR lpDirectoryName,PULARGE_INTEGER lpFreeBytesAvailableToCaller,PULARGE_INTEGER lpTotalNumberOfBytes,PULARGE_INTEGER lpTotalNumberOfFreeBytes ); 它有一个参数,路径,它有3个输出参数,即空闲字节(可用于调用者),总字节数(磁盘大小)和总可用字节数. 因此,只需在调用它时,为您想要获取的所有信息提供变量(指针). 例如: kernelDLL := syscall.MustLoadDLL("kernel32.dll") GetDiskFreeSpaceExW := kernelDLL.MustFindProc("GetDiskFreeSpaceExW") var free,total,avail int64 path := "c:" r1,r2,lastErr := GetDiskFreeSpaceExW.Call( uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(path))),uintptr(unsafe.Pointer(&free)),uintptr(unsafe.Pointer(&total)),uintptr(unsafe.Pointer(&avail)),) fmt.Println(r1,lastErr) fmt.Println("Free:",free,"Total:","Available:",avail) 运行它,一个示例输出: 1 0 Success. Free: 16795295744 Total: 145545281536 Available: 16795295744 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows-server-2012 – 当出现故障时,可以将存储空间驱动器
- windows10家庭版安装docker
- windows – 使用py2exe打包的python解释器
- microsoft-graph – 504尝试跟踪用户日历中的更改时的网关超
- .net – 无法加载Exchange powershell管理单元:“Microsof
- 使用choco 在windows 环境安装kubectl 并配置
- 从Windows打开调制解调器配置对话框(C#)
- windows-services – 如何调试此错误?该服务无法启动.该服
- 在Windows 7 Home Basic上安装IIS
- 32位进程可以在64位Windows操作系统上访问更多内存吗?
推荐文章
站长推荐
- windows-phone-8 – Rx 2.1:如何在Dispatcher上
- windows-phone-7 – 如何处理HTTP 412(前提条件失
- windows-server-2003 – 学习使用Server 2003(或
- filezilla在windows上搭建服务器
- 创建一个Windows 10映像以用作docker容器
- 关于window PC机的预定义宏win32
- iis-7 – 从IIS中的WindowsAuthentication中删除
- windows-services – 首先是TopShelf,Ninject和E
- .net – MVC Controller应该在单独的DLL中吗?
- 兼容性测试
热点阅读