Add utility methods to resolve actual file paths
This commit is contained in:
parent
81300d9ce5
commit
2e3bd31102
1 changed files with 31 additions and 0 deletions
|
@ -52,5 +52,36 @@ namespace Ryujinx.Common.Utilities
|
||||||
var reservedChars = new HashSet<char>(Path.GetInvalidFileNameChars());
|
var reservedChars = new HashSet<char>(Path.GetInvalidFileNameChars());
|
||||||
return string.Concat(fileName.Select(c => reservedChars.Contains(c) ? '_' : c));
|
return string.Concat(fileName.Select(c => reservedChars.Contains(c) ? '_' : c));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string ResolveFullPath(string path, bool isDirectory)
|
||||||
|
{
|
||||||
|
FileSystemInfo pathInfo = isDirectory ? new DirectoryInfo(path) : new FileInfo(path);
|
||||||
|
|
||||||
|
return pathInfo.ResolveLinkTarget(true)?.FullName ?? pathInfo.FullName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static FileInfo GetActualFileInfo(this FileInfo fileInfo)
|
||||||
|
{
|
||||||
|
return (FileInfo)(fileInfo.ResolveLinkTarget(true) ?? fileInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static FileInfo GetActualFileInfo(string filePath)
|
||||||
|
{
|
||||||
|
FileInfo fileInfo = new(filePath);
|
||||||
|
|
||||||
|
return (FileInfo)(fileInfo.ResolveLinkTarget(true) ?? fileInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static DirectoryInfo GetActualDirectoryInfo(this DirectoryInfo directoryInfo)
|
||||||
|
{
|
||||||
|
return (DirectoryInfo)(directoryInfo.ResolveLinkTarget(true) ?? directoryInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static DirectoryInfo GetActualDirectoryInfo(string directoryPath)
|
||||||
|
{
|
||||||
|
DirectoryInfo directoryInfo = new(directoryPath);
|
||||||
|
|
||||||
|
return (DirectoryInfo)(directoryInfo.ResolveLinkTarget(true) ?? directoryInfo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue