>백엔드 개발 >Golang >다양한 운영 체제 간에 이동 시 여유 디스크 공간을 확보하려면 어떻게 해야 합니까?

다양한 운영 체제 간에 이동 시 여유 디스크 공간을 확보하려면 어떻게 해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-31 16:59:10651검색

How Can I Get Free Disk Space in Go Across Different Operating Systems?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.