Xamarin.MacでCDやDVDなどの光学メディアを排出する
ナビゲーションに移動
検索に移動
macOSではCD-ROMやDVD-ROMなどの光学ドライブのイジェクトボタンを押しても無反応である。macOSではいちいちゴミ箱へドラッグアンドドロップするか、右クリックをして「取り出す」する必要がある。この挙動はとくにWindowsに慣れている者にとってはイライラの極みであると思われるが、OSとしてはそういう仕様なので諦めるしかない。
そのような劣悪な状況を少しでも改善するためには光学メディアを扱うアプリが大きな御世話をするしかないと思われる。
実装
UnmountAndEjectDeviceメソッドを呼ぶだけである。 引数に与えるパスはmacOSでは「/Volumes」ディレクトリ以下にマウントされているディスクが列挙されているので、このディレクトリにあるディレクトリをNSFileManagerで調べるのが確実である。または「MonoMac/リムーバブルメディアの着脱を検知する」あたりを利用するとよい。
NSWorkspace.SharedWorkspace.UnmountAndEjectDevice(DevicePath);