mirror of
https://github.com/BeyondDimension/SteamTools.git
synced 2026-10-25 19:49:43 +08:00
v2.4.12
This commit is contained in:
@@ -227,14 +227,14 @@ namespace System
|
||||
public static bool? IsDirectory(string path, [NotNullWhen(false)] out FileInfo? fileInfo, [NotNullWhen(true)] out DirectoryInfo? directoryInfo)
|
||||
{
|
||||
fileInfo = new(path);
|
||||
if (fileInfo.Exists)
|
||||
if (fileInfo.Exists) // 路径为文件
|
||||
{
|
||||
directoryInfo = null;
|
||||
return false;
|
||||
}
|
||||
fileInfo = null;
|
||||
directoryInfo = new(path);
|
||||
if (directoryInfo.Exists)
|
||||
if (directoryInfo.Exists) // 路径为文件夹
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -142,15 +142,41 @@ namespace System.Application.Services
|
||||
/// <param name="path"></param>
|
||||
void OpenFolder(string path)
|
||||
{
|
||||
var isDirectory = IOPath.IsDirectory(path, out var fileInfo, out var directoryInfo);
|
||||
if (!isDirectory.HasValue) return;
|
||||
if (isDirectory.Value)
|
||||
sbyte isDirectory = -1;
|
||||
FileInfo? fileInfo;
|
||||
DirectoryInfo directoryInfo = new(path);
|
||||
if (directoryInfo.Exists) // 路径为文件夹,则打开文件夹
|
||||
{
|
||||
OpenFolderByDirectoryPath(directoryInfo!);
|
||||
fileInfo = null;
|
||||
isDirectory = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
OpenFolderSelectFilePath(fileInfo!);
|
||||
fileInfo = new(path);
|
||||
if (fileInfo.Exists) // 路径为文件,则打开文件
|
||||
{
|
||||
isDirectory = 0;
|
||||
}
|
||||
else if (fileInfo.DirectoryName != null)
|
||||
{
|
||||
directoryInfo = new(fileInfo.DirectoryName);
|
||||
fileInfo = null;
|
||||
if (directoryInfo.Exists) // 路径为文件但文件不存在,文件夹存在,则打开文件夹
|
||||
{
|
||||
fileInfo = null;
|
||||
isDirectory = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
switch (isDirectory)
|
||||
{
|
||||
case 1:
|
||||
if (directoryInfo != null) OpenFolderByDirectoryPath(directoryInfo);
|
||||
break;
|
||||
case 0:
|
||||
if (fileInfo != null) OpenFolderSelectFilePath(fileInfo);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user