「Xamarin.Macで相対パスを絶対パスに変換する」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
 
(同じ利用者による、間の1版が非表示)
1行目: 1行目:
 
近年の[[ファイルシステム]]系の[[API]]は[[セキュリティ]]の関係で[[引数]]に[[相対パス]]を指定できなくしていることが多く、その場合は明示的に[[絶対パス]]に変換しておく必要がある。
 
近年の[[ファイルシステム]]系の[[API]]は[[セキュリティ]]の関係で[[引数]]に[[相対パス]]を指定できなくしていることが多く、その場合は明示的に[[絶対パス]]に変換しておく必要がある。
  
ほとんどの[[OS]]では[[ファイルシステム]]系[[API]]の中に変換してくれるものを用意している。たとえば[[*BSD]]や[[Linux]]ではrealpath関数が用意されている。一方、[[Mac]]ではファイルシステム系APIではなくNSStringに変換関数が用意されており、[[Xamarin.Mac]]では相対パスを格納したNSStringを用意してStandarizePath関数を叩くと絶対パスが得られる。<syntaxhighlight lang="csharp">
+
ほとんどの[[OS]]では[[ファイルシステム]]系[[API]]の中に変換してくれるものを用意している。たとえば[[*BSD]]や[[Linux]]ではrealpath関数が用意されている。一方、[[Mac]]ではファイルシステム系APIではなくNSStringに変換関数が用意されており、[[Xamarin.Mac]]では相対パスを格納したNSStringを用意してStandarizePath関数を叩くと絶対パスが得られる。
 +
 
 +
<syntaxhighlight lang="csharp">
 
// 相対パス
 
// 相対パス
 
var relativePath = new NSString(@"~/Documents/");
 
var relativePath = new NSString(@"~/Documents/");
9行目: 11行目:
  
 
== 関連項目 ==
 
== 関連項目 ==
 
+
* [[Xamarin.MacからFinderで指定フォルダを開く]]
* [[Xamarin.Macで指定フォルダをFinderで開く]]
 
  
 
[[カテゴリ:Xamarin.Mac]]
 
[[カテゴリ:Xamarin.Mac]]

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

近年のファイルシステム系のAPIセキュリティの関係で引数相対パスを指定できなくしていることが多く、その場合は明示的に絶対パスに変換しておく必要がある。

ほとんどのOSではファイルシステムAPIの中に変換してくれるものを用意している。たとえば*BSDLinuxではrealpath関数が用意されている。一方、Macではファイルシステム系APIではなくNSStringに変換関数が用意されており、Xamarin.Macでは相対パスを格納したNSStringを用意してStandarizePath関数を叩くと絶対パスが得られる。

// 相対パス
var relativePath = new NSString(@"~/Documents/");
// 絶対パスに変換
var absolutePath = relativePath.StandarizePath();

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