From 7bc489e15e31b2b4a77b9a63e05d229c2b1adb76 Mon Sep 17 00:00:00 2001 From: walon Date: Sun, 27 Mar 2022 16:44:06 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BC=98=E5=8C=96=E3=80=91path?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E6=97=B6=E4=B8=A5=E6=A0=BC=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=A4=A7=E5=B0=8F=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Luban.Client/Source/Net/GenClient.cs | 4 ++-- src/Luban.Client/Source/Utils/FileCleaner.cs | 2 +- src/Luban.Common/Source/Utils/FileUtil.cs | 20 ++++++++++++++++++++ 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/Luban.Client/Source/Net/GenClient.cs b/src/Luban.Client/Source/Net/GenClient.cs index 480ac08..594095b 100644 --- a/src/Luban.Client/Source/Net/GenClient.cs +++ b/src/Luban.Client/Source/Net/GenClient.cs @@ -183,7 +183,7 @@ namespace Luban.Client.Common.Net private bool CheckSubResourceExists(string mainResFileName, string subResName) { s_logger.Debug("check resources main:{} sub:{}", mainResFileName, subResName); - if (!File.Exists(mainResFileName)) + if (!FileUtil.IsFileExistsSenseCase(mainResFileName)) { return false; } @@ -236,7 +236,7 @@ namespace Luban.Client.Common.Net } else { - tasks.Add(Task.Run(() => File.Exists(Path.Combine(root, f)))); + tasks.Add(Task.Run(() => FileUtil.IsFileExistsSenseCase(Path.Combine(root, f)))); } } diff --git a/src/Luban.Client/Source/Utils/FileCleaner.cs b/src/Luban.Client/Source/Utils/FileCleaner.cs index bec6891..7707e4a 100644 --- a/src/Luban.Client/Source/Utils/FileCleaner.cs +++ b/src/Luban.Client/Source/Utils/FileCleaner.cs @@ -21,7 +21,7 @@ namespace Luban.Client.Common.Utils public void AddOutputDir(string dir) { - dir = dir.TrimEnd('/', '\\'); + dir = Path.TrimEndingDirectorySeparator(dir); _outputDirs.Add(dir); } diff --git a/src/Luban.Common/Source/Utils/FileUtil.cs b/src/Luban.Common/Source/Utils/FileUtil.cs index e1a4435..67d5487 100644 --- a/src/Luban.Common/Source/Utils/FileUtil.cs +++ b/src/Luban.Common/Source/Utils/FileUtil.cs @@ -1,5 +1,7 @@ using System; using System.IO; +using System.Linq; +using System.Runtime.InteropServices; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; @@ -49,6 +51,24 @@ namespace Luban.Common.Utils return Combine(GetParent(rootFile), file); } + public static bool IsFileExistsSenseCase(string path) + { + if (!File.Exists(path)) + { + return false; + } + if (OperatingSystem.IsWindows()) + { + var fileName = Path.GetFileName(path); + var files = Directory.GetFiles(Path.GetDirectoryName(path), fileName, new EnumerationOptions() { MatchCasing = MatchCasing.CaseSensitive }); + return files.Length > 0; + } + else + { + return true; + } + } + /// /// 忽略以 文件名以 '.' '_' '~' 开头的文件 ///