Dapatkan Ruang Cakera Percuma dalam Go
Mencari jumlah ruang cakera kosong ialah tugas biasa dalam pentadbiran sistem. Dalam Go, anda boleh mendapatkan maklumat ini menggunakan fungsi yang sesuai berdasarkan sistem pengendalian yang anda gunakan.
Sistem POSIX
Pada sistem POSIX, anda boleh menggunakan sistem Fungsi .unix.Statfs. Fungsi ini membawa laluan ke fail atau direktori sebagai hujah dan mengembalikan struktur unix.Statfs_t. Medan Bavail bagi struktur ini mewakili bilangan blok yang tersedia pada sistem fail, manakala medan Bsize mewakili saiz setiap blok dalam bait. Untuk mengira ruang kosong dalam bait, darab dua nilai ini.
Sebagai contoh, untuk mencetak ruang kosong dalam bait direktori kerja semasa:
import ( "fmt" "golang.org/x/sys/unix" "os" ) func main() { var stat unix.Statfs_t wd, err := os.Getwd() if err != nil { panic(err) } if err := unix.Statfs(wd, &stat); err != nil { panic(err) } freeSpace := stat.Bavail * uint64(stat.Bsize) fmt.Println(freeSpace) }
Windows
Pada Windows, anda boleh menggunakan pakej syscall. Pakej ini menyediakan akses kepada API Windows, yang termasuk fungsi GetDiskFreeSpaceEx. Fungsi ini membawa laluan ke pemacu sebagai hujah dan mengembalikan bait percuma yang tersedia, jumlah bilangan bait dan jumlah bilangan bait percuma.
Sebagai contoh, untuk mendapatkan ruang kosong dalam bait pada C: memandu:
import ( "fmt" "golang.org/x/sys/windows" ) func main() { var freeBytesAvailable uint64 var totalNumberOfBytes uint64 var totalNumberOfFreeBytes uint64 err := windows.GetDiskFreeSpaceEx(windows.StringToUTF16Ptr("C:"), &freeBytesAvailable, &totalNumberOfBytes, &totalNumberOfFreeBytes) if err != nil { panic(err) } fmt.Println(freeBytesAvailable) }
Pakej Rentas Platform
Jika anda memerlukan platform silang penyelesaian, anda boleh membuat pakej yang menyediakan fungsi untuk kedua-dua sistem POSIX dan Windows. Alat binaan dalam Go membolehkan anda menentukan gelagat berbeza berdasarkan sistem pengendalian yang anda sedang bina.
Atas ialah kandungan terperinci Bagaimana Mendapatkan Ruang Cakera Percuma dalam Go: Panduan Merentas Platform?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!