public static string ReadLink(string path) { Errno errno; path = UnixPath.ReadSymbolicLink(path, out errno); if ((int)errno != 0) { UnixMarshal.ThrowExceptionForError(errno); } return(path); }
public static string GetRealPath(string path) { while (true) { string str = UnixPath.ReadSymbolicLink(path); if (str == null) { break; } if (!UnixPath.IsPathRooted(str)) { path = string.Concat(UnixPath.GetDirectoryName(path), UnixPath.DirectorySeparatorChar, str); path = UnixPath.GetCanonicalPath(path); } else { path = str; } } return(path); }
public static string TryReadLink(string path) { Errno errno; return(UnixPath.ReadSymbolicLink(path, out errno)); }