Windows 시스템으로 작업할 때 개발자는 종종 운영 체제의 파일 시스템과 상호 작용하고 스토리지 볼륨에 대한 정보를 검색합니다. 이 목적을 위한 필수 기능 중 하나는 지정된 디스크 볼륨에 대한 세부 정보를 제공하는 GetVolumeInformation입니다.
이 기사에서는 GoLang의 GetVolumeInformation 기능을 활용하여 특정 스토리지 볼륨의 이름을 확인하는 방법을 살펴봅니다.
GetVolumeInformation 함수를 사용하여 볼륨 이름을 검색하려면 다음 단계를 따라야 합니다.
다음은 GoLang에서 GetVolumeInformation 함수를 사용하는 방법을 보여주는 예제 코드 조각입니다.
package main import ( "fmt" "syscall" "unsafe" ) func main() { var lpRootPathName = "C:\" var lpVolumeNameBuffer = make([]uint16, syscall.MAX_PATH+1) var nVolumeNameSize = uint32(len(lpVolumeNameBuffer)) var lpVolumeSerialNumber uint32 var lpMaximumComponentLength uint32 var lpFileSystemFlags uint32 var lpFileSystemNameBuffer = make([]uint16, 255) var nFileSystemNameSize uint32 = syscall.MAX_PATH + 1 kernel32, _ := syscall.LoadLibrary("kernel32.dll") getVolume, _ := syscall.GetProcAddress(kernel32, "GetVolumeInformationW") var nargs uintptr = 8 ret, _, callErr := syscall.Syscall9(uintptr(getVolume), nargs, uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpRootPathName))), uintptr(unsafe.Pointer(&lpVolumeNameBuffer[0])), uintptr(nVolumeNameSize), uintptr(unsafe.Pointer(&lpVolumeSerialNumber)), uintptr(unsafe.Pointer(&lpMaximumComponentLength)), uintptr(unsafe.Pointer(&lpFileSystemFlags)), uintptr(unsafe.Pointer(&lpFileSystemNameBuffer[0])), uintptr(nFileSystemNameSize), 0) fmt.Println(ret, callErr, syscall.UTF16ToString(lpVolumeNameBuffer)) }
GetVolumeInformation을 사용할 때 기억해야 할 중요한 측면 중 하나는 와이드 문자열(UTF-16)에서 작동한다는 것입니다. 결과적으로 함수에 전달되고 함수에서 반환되는 모든 문자열이 UTF-16 형식인지 확인해야 합니다. 그렇지 않으면 예상치 못한 결과가 발생할 수 있습니다.
GetVolumeInformation 기능은 GoLang의 스토리지 볼륨에 대한 포괄적인 정보를 얻는 효과적인 방법을 제공합니다. 이 문서에 설명된 단계를 따르면 애플리케이션 요구 사항에 맞게 볼륨 이름과 기타 필수 세부 정보를 성공적으로 검색할 수 있습니다.
위 내용은 GoLang의 GetVolumeInformation 함수를 사용하여 Windows에서 스토리지 볼륨의 이름을 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!