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

提供: MonoBook
ナビゲーションに移動 検索に移動
imported>Administrator
imported>Administrator
 
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]]

2018年12月28日 (金) 03:49時点における最新版

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

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

実装[編集 | ソースを編集]

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

    NSWorkspace.SharedWorkspace.UnmountAndEjectDevice(DevicePath);

関連項目[編集 | ソースを編集]