「Xamarin.Macで相対パスを絶対パスに変換する」の版間の差分
ナビゲーションに移動
検索に移動
(→関連項目) |
|||
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日 (金) 01:52時点における版
近年のファイルシステム系のAPIはセキュリティの関係で引数に相対パスを指定できなくしていることが多く、その場合は明示的に絶対パスに変換しておく必要がある。
ほとんどのOSではファイルシステム系APIの中に変換してくれるものを用意している。たとえば*BSDやLinuxではrealpath関数が用意されている。一方、Macではファイルシステム系APIではなくNSStringに変換関数が用意されており、Xamarin.Macでは相対パスを格納したNSStringを用意してStandarizePath関数を叩くと絶対パスが得られる。
// 相対パス
var relativePath = new NSString(@"~/Documents/");
// 絶対パスに変換
var absolutePath = relativePath.StandarizePath();