「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))
             {
             {
                 var homePath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
#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>