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