private static bool TryGetNameFromPath (string path, out string name)
{
name = null;
var linkPath = readlink (path);
if (linkPath != null) {
if (Path.IsPathRooted(linkPath))
path = linkPath;
else
path = Path.Combine(Path.GetDirectoryName(path), linkPath);
}
path = Path.GetFullPath (path);
if (string.IsNullOrEmpty (TimeZoneDirectory))
return false;
var baseDir = TimeZoneDirectory;
if (baseDir [baseDir.Length-1] != Path.DirectorySeparatorChar)
baseDir += Path.DirectorySeparatorChar;
if (!path.StartsWith (baseDir, StringComparison.InvariantCulture))
return false;
name = path.Substring (baseDir.Length);
if (name == "localtime")
name = "Local";
return true;
}