Go API를 사용하여 Windows에서 드라이브 용량 확인
이전 질문에서는 Windows를 사용하여 Go에서 사용 가능한 디스크 공간을 얻는 방법에 대한 지침을 구하셨습니다. API 호출. 이 응답은 이 정보를 검색하기 위해 kernel32.dll의 GetDiskFreeSpaceExW() 함수를 사용하는 방법을 보여줍니다.
추가 탐색을 위해 이제 C:와 같은 특정 드라이브의 전체 크기를 확인하려고 합니다. GetDiskFreeSpaceExW() 함수도 이러한 요구를 충족할 수 있습니다.
GetDiskFreeSpaceExW()의 서명
이 함수의 서명은 다음과 같습니다.
BOOL GetDiskFreeSpaceExW( LPCWSTR lpDirectoryName, PULARGE_INTEGER lpFreeBytesAvailableToCaller, PULARGE_INTEGER lpTotalNumberOfBytes, PULARGE_INTEGER lpTotalNumberOfFreeBytes );
입력 매개변수(드라이브 경로)를 취하고 3개의 출력 매개변수를 반환합니다. 호출자가 사용할 수 있는 여유 바이트, 디스크의 총 크기 및 총 여유 바이트.
Go에서의 사용법
Go에서 이 기능을 활용하려면 다음 단계를 수행할 수 있습니다.
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, r2, lastErr) fmt.Println("Free:", free, "Total:", total, "Available:", avail)
출력 예
제공된 코드를 실행하면 다음과 유사한 출력이 생성됩니다. 이:
1 0 Success. Free: 16795295744 Total: 145545281536 Available: 16795295744
이 출력은 C: 드라이브의 총 크기가 145545281536바이트임을 나타냅니다.
위 내용은 Go 및 Windows API를 사용하여 드라이브의 총 용량을 확인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!