パーティションのパーティション/ファイルシステム UUID を取得できるようにする必要があります。これはVOL
、WinDOS やls -l /dev/disks/by-partuuid
*nix で行う方法と同様ですが、C# コードを使用します。これを行う最善の方法は何ですか?
参考までに、現在のディレクトリまたは「最も近い」マウントのいずれかから UUID を取得できる必要があります。
編集:私の悪い、これを前もって言っておくべきだった: Mono で実行する必要があります。
パーティションのパーティション/ファイルシステム UUID を取得できるようにする必要があります。これはVOL
、WinDOS やls -l /dev/disks/by-partuuid
*nix で行う方法と同様ですが、C# コードを使用します。これを行う最善の方法は何ですか?
参考までに、現在のディレクトリまたは「最も近い」マウントのいずれかから UUID を取得できる必要があります。
編集:私の悪い、これを前もって言っておくべきだった: Mono で実行する必要があります。
両方のプラットフォーム用のコードを記述し、どちらを使用するかに基づいて実行時に決定Environment.OSVersion.Platform
できます。実装を別々のメソッド (またはクラス) で記述してください。そうすれば、ランタイムが間違ったプラットフォーム用にピンボークされたライブラリをロードしようとしなくなります。
Windows の場合、他の回答で説明されているように、GetVolumeInformation または WMI を使用できます。Linuxの場合、質問で言及したディレクトリを、おそらくreadlinkのピンボークまたはMono.Posixアセンブリの使用と組み合わせて使用できます。