Rumah >pembangunan bahagian belakang >Golang >Bagaimana Saya Boleh Mendapatkan Ruang Cakera Percuma dalam Merentasi Sistem Pengendalian Berbeza?
Mendapatkan Ruang Cakera Percuma dalam Merentasi Pelbagai Platform
Dalam artikel ini, kami meneroka penyelesaian untuk mendapatkan semula saiz percuma dan jumlah keseluruhan secara dinamik volum storan menggunakan Go, tanpa mengira sistem pengendalian (Windows, Linux, Mac). Penyelesaian ini menghapuskan keperluan untuk arahan luaran seperti df -h atau pengiraan manual.
Untuk sistem berasaskan POSIX, kami memanfaatkan fungsi sys.unix.Statfs untuk mengakses struktur Statfs_t. Sebagai contoh, untuk mendapatkan ruang kosong untuk direktori kerja semasa dalam bait:
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))
Dalam kes Windows, kami mengambil pendekatan syscall. Berikut ialah contoh yang dikemas kini menggunakan pakej sys/windows yang lebih baharu:
import "golang.org/x/sys/windows" var freeBytesAvailable uint64 var totalNumberOfBytes uint64 var totalNumberOfFreeBytes uint64 err := windows.GetDiskFreeSpaceEx(windows.StringToUTF16Ptr("C:"), &freeBytesAvailable, &totalNumberOfBytes, &totalNumberOfFreeBytes)
Jangan teragak-agak untuk melanjutkan contoh ini ke dalam pakej merentas platform untuk penggunaan yang lebih luas. Untuk panduan tentang pelaksanaan merentas platform, rujuk dokumentasi bantuan alat binaan.
Atas ialah kandungan terperinci Bagaimana Saya Boleh Mendapatkan Ruang Cakera Percuma dalam Merentasi Sistem Pengendalian Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!