This commit is contained in:
Aigio Liu
2021-09-06 18:34:59 +08:00
parent a77aa692c7
commit 8046ee7a5b
2 changed files with 33 additions and 7 deletions
+2 -2
View File
@@ -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;
}
}