Fix FileNotFoundException when resolving non-existent paths in FileSystemUtils
This commit is contained in:
parent
eb7fb9da74
commit
abaa560ed5
2 changed files with 21 additions and 6 deletions
|
@ -57,31 +57,46 @@ namespace Ryujinx.Common.Utilities
|
||||||
{
|
{
|
||||||
FileSystemInfo pathInfo = isDirectory ? new DirectoryInfo(path) : new FileInfo(path);
|
FileSystemInfo pathInfo = isDirectory ? new DirectoryInfo(path) : new FileInfo(path);
|
||||||
|
|
||||||
|
if (pathInfo.Exists)
|
||||||
|
{
|
||||||
return pathInfo.ResolveLinkTarget(true)?.FullName ?? pathInfo.FullName;
|
return pathInfo.ResolveLinkTarget(true)?.FullName ?? pathInfo.FullName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return pathInfo.FullName;
|
||||||
|
}
|
||||||
|
|
||||||
public static FileInfo GetActualFileInfo(this FileInfo fileInfo)
|
public static FileInfo GetActualFileInfo(this FileInfo fileInfo)
|
||||||
|
{
|
||||||
|
if (fileInfo.Exists)
|
||||||
{
|
{
|
||||||
return (FileInfo)(fileInfo.ResolveLinkTarget(true) ?? fileInfo);
|
return (FileInfo)(fileInfo.ResolveLinkTarget(true) ?? fileInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return fileInfo;
|
||||||
|
}
|
||||||
|
|
||||||
public static FileInfo GetActualFileInfo(string filePath)
|
public static FileInfo GetActualFileInfo(string filePath)
|
||||||
{
|
{
|
||||||
FileInfo fileInfo = new(filePath);
|
FileInfo fileInfo = new(filePath);
|
||||||
|
|
||||||
return (FileInfo)(fileInfo.ResolveLinkTarget(true) ?? fileInfo);
|
return fileInfo.GetActualFileInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static DirectoryInfo GetActualDirectoryInfo(this DirectoryInfo directoryInfo)
|
public static DirectoryInfo GetActualDirectoryInfo(this DirectoryInfo directoryInfo)
|
||||||
|
{
|
||||||
|
if (directoryInfo.Exists)
|
||||||
{
|
{
|
||||||
return (DirectoryInfo)(directoryInfo.ResolveLinkTarget(true) ?? directoryInfo);
|
return (DirectoryInfo)(directoryInfo.ResolveLinkTarget(true) ?? directoryInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return directoryInfo;
|
||||||
|
}
|
||||||
|
|
||||||
public static DirectoryInfo GetActualDirectoryInfo(string directoryPath)
|
public static DirectoryInfo GetActualDirectoryInfo(string directoryPath)
|
||||||
{
|
{
|
||||||
DirectoryInfo directoryInfo = new(directoryPath);
|
DirectoryInfo directoryInfo = new(directoryPath);
|
||||||
|
|
||||||
return (DirectoryInfo)(directoryInfo.ResolveLinkTarget(true) ?? directoryInfo);
|
return directoryInfo.GetActualDirectoryInfo();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue