用nim写了一个,表示很开心:- type
- WINBOOL* = uint32
-
- s64* = uint64
-
- proc getDiskFreeSpaceEx*(name: cstring, freeBytes,
- lpTotalNumberOfBytes,lpTotalNumberOfFreeBytes: var s64): WINBOOL
- {.stdcall, dynlib: "kernel32", importc: "GetDiskFreeSpaceExA", discardable.}
-
- proc getusedspace*(name: cstring):auto {.discardable.} =
- var freeBytes, totalBytes, totalFreeBytes: s64
- getDiskFreeSpaceEx(name, freeBytes, totalBytes,totalFreeBytes)
- result = ((totalBytes - freeBytes) div 1024 div 1024)
-
- echo "已经使用:", getusedspace("c:\\EFI"), "MB"
复制代码
|