Go を使用したディスク空き容量の取得
システム管理の領域では、最適なパフォーマンスとリソース管理のために利用可能なディスク容量を監視することが不可欠です。この知識は、広く使用されているコマンド df -h を通じて取得できます。このコマンドは、さまざまなパーティションの空きディスク容量と合計ディスク容量の両方を表示します。
Go でこの機能を実現するには、POSIX システム用ともう 1 つの 2 つのアプローチを検討します。特に Windows 向けに調整されています。
POSIX システム (Linux、macOS)
POSIX の場合システムでは、Go は golang.org/x/sys/unix パッケージ内で sys.unix.Statfs 関数を提供します。この関数を使用するには、os.Getwd() を使用して現在の作業ディレクトリを取得し、引数としてディレクトリ パスを指定して unix.Statfs() を呼び出します。次に、Statfs_t 構造体は、Bavail (使用可能なブロックの数) や Bsize (ブロック サイズ) などのさまざまなファイル システム統計へのアクセスを提供します。これらの値を乗算すると、バイト単位の合計空き領域が求められます。
Windows システム
Windows には、unix.Statfs に直接相当するものが存在しないため、別の課題が生じます。代わりに、Go の syscall パッケージを使用し、golang.org/x/sys/windows パッケージの windows.GetDiskFreeSpaceEx 関数を使用する必要があります。この関数はドライブ文字を入力として受け取り、freeBytesAvailable (使用可能なバイト数)、totalNumberOfBytes (合計ディスク サイズ)、および totalNumberOfFreeBytes (空きバイト数) の 3 つの値を返します。
クロスプラットフォーム パッケージの作成
このプロセスを合理化し、オペレーティング システム間で一貫したインターフェイスを提供するには、専用の Go パッケージは優れたソリューションです。このパッケージは、上記の手法を利用して、単純な API を通じてアクセスできるクロスプラットフォームのディスク容量レポートを実装できます。 Go のクロスコンパイル機能を採用することで、パッケージをさまざまなプラットフォームで簡単に配布して使用できます。
以上がPOSIX と Windows システムの両方で Go のディスク容量の可用性を確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。