メインメニューを開く

Xamarin.MacでCDやDVDなどの光学メディアを排出する

2018年12月28日 (金) 03:49時点におけるimported>Administratorによる版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

macOSではCD-ROMDVD-ROMなどの光学ドライブのイジェクトボタンを押しても無反応である。macOSではいちいちゴミ箱ドラッグアンドドロップするか、右クリックをして「取り出す」する必要がある。この挙動はとくにWindowsに慣れている者にとってはイライラの極みであると思われるが、OSとしてはそういう仕様なので諦めるしかない。

そのような劣悪な状況を少しでも改善するためには光学メディアを扱うアプリが大きな御世話をするしかないと思われる。

実装編集

UnmountAndEjectDeviceメソッドを呼ぶだけである。 引数に与えるパスはmacOSでは「/Volumes」ディレクトリ以下にマウントされているディスクが列挙されているので、このディレクトリにあるディレクトリをNSFileManagerで調べるのが確実である。または「MonoMac/リムーバブルメディアの着脱を検知する」あたりを利用するとよい。

    NSWorkspace.SharedWorkspace.UnmountAndEjectDevice(DevicePath);

関連項目編集