Go Across Multiple Platforms에서 여유 디스크 공간 검색
이 기사에서는 여유 디스크 공간과 전체 크기를 동적으로 검색하는 솔루션을 탐색합니다. 운영 체제(Windows, Linux, Mac)에 관계없이 Go를 사용하여 스토리지 볼륨을 제공합니다. 이 솔루션을 사용하면 df -h와 같은 외부 명령이나 수동 계산이 필요하지 않습니다.
POSIX 기반 시스템의 경우 sys.unix.Statfs 함수를 활용하여 Statfs_t 구조에 액세스합니다. 예를 들어, 현재 작업 디렉토리의 여유 공간을 바이트 단위로 얻으려면:
import "golang.org/x/sys/unix" import "os" var stat unix.Statfs_t wd, err := os.Getwd() unix.Statfs(wd, &stat) // Available blocks * size per block = available space in bytes fmt.Println(stat.Bavail * uint64(stat.Bsize))
Windows의 경우 syscall 접근 방식을 사용합니다. 다음은 최신 sys/windows 패키지를 사용한 업데이트된 예입니다.
import "golang.org/x/sys/windows" var freeBytesAvailable uint64 var totalNumberOfBytes uint64 var totalNumberOfFreeBytes uint64 err := windows.GetDiskFreeSpaceEx(windows.StringToUTF16Ptr("C:"), &freeBytesAvailable, &totalNumberOfBytes, &totalNumberOfFreeBytes)
더 폭넓게 사용할 수 있도록 주저하지 말고 이러한 예를 크로스 플랫폼 패키지로 확장하세요. 크로스 플랫폼 구현에 대한 지침은 빌드 도구의 도움말 문서를 참조하세요.
위 내용은 다양한 운영 체제 간에 이동 시 여유 디스크 공간을 확보하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!