「Xamarin.MacでCDやDVDなどの光学メディアを排出する」の版間の差分

ページの作成:「Mac OS XではCDDVDなどの光学ドライブのイジェクトボタンを押しても無反応である。 Mac OS Xではいちいちゴミ箱へド...」
 
imported>Administrator
編集の要約なし
 
(同じ利用者による、間の1版が非表示)
1行目: 1行目:
[[Mac OS X]]では[[CD]]や[[DVD]]などの光学ドライブのイジェクトボタンを押しても無反応である。
[[macOS]]では[[CD-ROM]]や[[DVD-ROM]]などの[[光学ドライブ]]のイジェクトボタンを押しても無反応である。[[macOS]]ではいちいち[[ゴミ箱]]へ[[ドラッグアンドドロップ]]するか、[[右クリック]]をして「取り出す」する必要がある。この挙動はとくに[[Windows]]に慣れている者にとってはイライラの極みであると思われるが、[[OS]]としてはそういう[[仕様]]なので諦めるしかない。
[[Mac OS X]]ではいちいちゴミ箱へドラッグアンドドロップするか、右クリックして「取り出す」する必要がある。
この挙動はとくに[[Windows]]に慣れている者にとってはイライラの極みであると思われるが、そういう仕様なので諦めるしかない。


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


==実装1==
== 実装 ==
UnmountAndEjectDeviceメソッドを呼ぶだけである。
UnmountAndEjectDeviceメソッドを呼ぶだけである。
引数に与えるパスはMac OS Xでは「/Volumes」ディレクトリ以下にマウントされているディスクが列挙されているので、このディレクトリにあるディレクトリをNSFileManagerで調べるのが確実である。または「[[MonoMac/リムーバブルメディアの着脱を検知する]]」あたりを利用するとよい。
引数に与えるパスは[[macOS]]では「/Volumes」[[ディレクトリ]]以下に[[マウント]]されている[[ディスク]]が列挙されているので、このディレクトリにあるディレクトリをNSFileManagerで調べるのが確実である。または「[[MonoMac/リムーバブルメディアの着脱を検知する]]」あたりを利用するとよい。
<source lang="csharp">
<source lang="csharp">
NSWorkspace.SharedWorkspace.UnmountAndEjectDevice(DevicePath);
    NSWorkspace.SharedWorkspace.UnmountAndEjectDevice(DevicePath);
</source>
</source>


==関連項目==
==関連項目==
 
* [[Xamarin.Macでリムーバブルメディアの着脱を検知する]]
==参考文献==
* [[Xamarin.Macで接続されているリムーバブルメディアの一覧を取得する]]
{{reflist}}
 
{{stub}}


[[category:Xamarin.Mac]]
[[category:Xamarin.Mac]]