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