ホームページ > バックエンド開発 > Golang > Go を使用して Windows、Linux、macOS の空きディスク容量情報を取得するにはどうすればよいですか?

Go を使用して Windows、Linux、macOS の空きディスク容量情報を取得するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-16 19:16:12
オリジナル
537 人が閲覧しました

How Can I Get Free Disk Space Information Across Windows, Linux, and macOS Using Go?

Go でのクロスプラットフォームのディスク領域の取得

この記事では、Windows をカバーする空きディスク領域情報を取得するという課題に取り組みます。 Go プログラミング言語を使用する Linux および Mac プラットフォーム。

問題ステートメント

目的は、広く使用されている Unix コマンド df -h の出力を複製することです。このコマンドは、ボリュームの空きストレージ容量と合計ストレージ容量の詳細を提供します。この機能は、さまざまなオペレーティング システムに適応でき、Go で実装される必要があります。

ソリューション

POSIX システム (Linux、Mac)

POSIX ベースのシステム (Linux や Mac などの Unix 系オペレーティング システム) では、 sys.unix.Statfs パッケージが利用されます。このパッケージには、ファイル システム統計を表すデータ構造を返す Statfs 関数が含まれています。次のコード スニペットは、その使用法を示しています。

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 システム

Windows システムの場合、syscall パッケージは 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)
ログイン後にコピー

クロスプラットフォーム パッケージ

提供されたソリューションに基づいて、ユーザーはクロスプラットフォーム パッケージを開発することが推奨されます。この機能をカプセル化します。このパッケージは、基盤となるプラットフォーム固有の実装を抽象化し、オペレーティング システムに関係なく空きディスク領域情報を取得するための一貫したインターフェイスを提供する必要があります。

以上がGo を使用して Windows、Linux、macOS の空きディスク容量情報を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート