Xamarin.Macで接続されているリムーバブルメディアの一覧を取得する

提供: MonoBook
ナビゲーションに移動 検索に移動

Xamarin.Macで接続されているリムーバブルメディアの一覧を取得する。

これで得られるのは「リムーバブルメディアのパス」の一覧だけなので、 そのリムーバブルメディアの種類などの詳細はNSWorkspace.SharedWorkspace.GetFileSystemInfoメソッドで別途調べる必要がある。

    // 取り外し可能なマウントポイントを列挙する
    var keys = NSArray.FromObjects(new []{ 
        NSUrl.VolumeNameKey,
        NSUrl.VolumeIsRemovableKey,
        NSUrl.VolumeIsEjectableKey 
    });
    var urls = NSFileManager.DefaultManager.GetMountedVolumes(keys, NSVolumeEnumerationOptions.None);

    // リムーバブルメディアを列挙する
    foreach (var url in urls)
    {
        // 「file://」形式をスラッシュで始まる一般的なパス形式に変換する
        var path = url.RelativePath;

        // 「/Volumes/」以外は無視
        if (!path.StartsWith("/Volumes/"))
        {
            continue;
        }

        // リムーバブルメディアのパスを表示
        // リムーバブルメディアの詳細はNSWorkspace.SharedWorkspace.GetFileSystemInfoメソッドで調べろ。
        Console.WriteLine(path);
    }

関連項目