「MonoやXamarinで絶対パスを取得する」の版間の差分
編集の要約なし |
編集の要約なし |
||
| 10行目: | 10行目: | ||
using System; | using System; | ||
using System.IO; | using System.IO; | ||
using System.Runtime.InteropServices; | |||
public static class PathUtil | public static class PathUtil | ||
| 18行目: | 19行目: | ||
if (path.StartsWith("~/", StringComparison.Ordinal)) | if (path.StartsWith("~/", StringComparison.Ordinal)) | ||
{ | { | ||
#if NETCOREAPP | |||
string homePath = ( | |||
RuntimeInformation.IsOSPlatform(OSPlatform.Linux) || | |||
RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) | |||
? Environment.GetEnvironmentVariable("HOME") | |||
: Environment.GetEnvironmentVariable("UserProfile"); | |||
#else | |||
string homePath = ( | |||
Environment.OSVersion.Platform == PlatformID.Unix || | |||
Environment.OSVersion.Platform == PlatformID.MacOSX) | |||
? Environment.GetEnvironmentVariable("HOME") | |||
: Environment.ExpandEnvironmentVariables("%HOMEDRIVE%%HOMEPATH%"); | |||
#endif | |||
realPath = Path.Combine(homePath, path.Substring(2)); | realPath = Path.Combine(homePath, path.Substring(2)); | ||
} | } | ||
| 28行目: | 41行目: | ||
return Path.GetFullPath(realPath); | return Path.GetFullPath(realPath); | ||
} | } | ||
</source> | </source> | ||