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

提供: MonoBook
2018年12月28日 (金) 06:09時点における180.15.192.154 (トーク)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

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);
    }

関連項目[編集 | ソースを編集]