NS痛苦调试日志

This commit is contained in:
sin365 2025-09-11 11:00:04 +08:00
parent a6cbd94103
commit 8a415aa10f

View File

@ -797,7 +797,7 @@ public class AxiNSIO
public bool TryGetDirectoryAndParentsExcludingRoot(string inputPath, out string resolvedDirectory, out List<string> parentDirectories) public bool TryGetDirectoryAndParentsExcludingRoot(string inputPath, out string resolvedDirectory, out List<string> parentDirectories)
{ {
// 捕获路径中包含非法字符引发的异常 // 捕获路径中包含非法字符引发的异常
UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->{inputPath}"); //UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->{inputPath}");
resolvedDirectory = null; resolvedDirectory = null;
parentDirectories = new List<string>(); parentDirectories = new List<string>();
@ -808,7 +808,7 @@ public class AxiNSIO
} }
string normalizedPath = inputPath.Replace('\\', '/').Trim(); // 统一使用正斜杠 string normalizedPath = inputPath.Replace('\\', '/').Trim(); // 统一使用正斜杠
UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->normalizedPath=>{normalizedPath}"); //UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->normalizedPath=>{normalizedPath}");
try try
{ {
// 1. 判断路径类型并解析出最直接的目标目录 // 1. 判断路径类型并解析出最直接的目标目录
@ -816,25 +816,25 @@ public class AxiNSIO
if (normalizedPath.EndsWith("/")) if (normalizedPath.EndsWith("/"))
{ {
UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->normalizedPath.EndsWith(\"/\") == true"); //UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->normalizedPath.EndsWith(\"/\") == true");
resolvedDirectory = normalizedPath.TrimEnd('/'); resolvedDirectory = normalizedPath.TrimEnd('/');
} }
else else
{ {
int lastSeparatorIndex = normalizedPath.LastIndexOf('/'); int lastSeparatorIndex = normalizedPath.LastIndexOf('/');
UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->lastSeparatorIndex->{lastSeparatorIndex}"); //UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->lastSeparatorIndex->{lastSeparatorIndex}");
string lastPart = (lastSeparatorIndex >= 0) ? normalizedPath.Substring(lastSeparatorIndex + 1) : normalizedPath; string lastPart = (lastSeparatorIndex >= 0) ? normalizedPath.Substring(lastSeparatorIndex + 1) : normalizedPath;
if (string.IsNullOrEmpty(lastPart) || lastPart.Equals("..") || !lastPart.Contains(".")) if (string.IsNullOrEmpty(lastPart) || lastPart.Equals("..") || !lastPart.Contains("."))
{ {
UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->step1"); //UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->step1");
resolvedDirectory = normalizedPath; resolvedDirectory = normalizedPath;
} }
else else
{ {
UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->step2"); //UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->step2");
isLikelyFile = true; isLikelyFile = true;
UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->lastSeparatorIndex=>{lastSeparatorIndex}"); //UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->lastSeparatorIndex=>{lastSeparatorIndex}");
if (lastSeparatorIndex >= 0) if (lastSeparatorIndex >= 0)
{ {
resolvedDirectory = normalizedPath.Substring(0, lastSeparatorIndex); resolvedDirectory = normalizedPath.Substring(0, lastSeparatorIndex);
@ -846,14 +846,14 @@ public class AxiNSIO
} }
} }
UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->resolvedDirectory=>{resolvedDirectory}"); //UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->resolvedDirectory=>{resolvedDirectory}");
if (string.IsNullOrEmpty(resolvedDirectory)) if (string.IsNullOrEmpty(resolvedDirectory))
{ {
UnityEngine.Debug.LogError($"TryGetDirectoryAndParentsExcludingRoot->string.IsNullOrEmpty(resolvedDirectory) == false"); //UnityEngine.Debug.LogError($"TryGetDirectoryAndParentsExcludingRoot->string.IsNullOrEmpty(resolvedDirectory) == false");
return false; return false;
} }
UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->step3"); //UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->step3");
// 2. 提取并检查挂载根节点(如 "save:" 或 "sd:" // 2. 提取并检查挂载根节点(如 "save:" 或 "sd:"
string mountRoot = null; string mountRoot = null;
int colonSlashIndex = resolvedDirectory.IndexOf(":/"); int colonSlashIndex = resolvedDirectory.IndexOf(":/");
@ -861,7 +861,7 @@ public class AxiNSIO
{ {
mountRoot = resolvedDirectory.Substring(0, colonSlashIndex + 1); // 例如 "save:" mountRoot = resolvedDirectory.Substring(0, colonSlashIndex + 1); // 例如 "save:"
} }
UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->mountRoot=>{mountRoot}"); //UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->mountRoot=>{mountRoot}");
// 检查挂载状态 // 检查挂载状态
if (!IsMountPointAccessible(mountRoot + "/")) if (!IsMountPointAccessible(mountRoot + "/"))
@ -870,13 +870,13 @@ public class AxiNSIO
return false; return false;
} }
UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->step4"); //UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->step4");
// 3. 手动分割路径,收集父目录,并在到达挂载根节点时停止 // 3. 手动分割路径,收集父目录,并在到达挂载根节点时停止
string currentPath = resolvedDirectory; string currentPath = resolvedDirectory;
UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->currentPath=>{currentPath}"); //UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->currentPath=>{currentPath}");
while (!string.IsNullOrEmpty(currentPath)) while (!string.IsNullOrEmpty(currentPath))
{ {
UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->step5"); //UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->step5");
// 检查当前路径是否已经是挂载根节点(例如 "save:" // 检查当前路径是否已经是挂载根节点(例如 "save:"
if (mountRoot != null && currentPath.Equals(mountRoot, StringComparison.OrdinalIgnoreCase)) if (mountRoot != null && currentPath.Equals(mountRoot, StringComparison.OrdinalIgnoreCase))
{ {
@ -902,7 +902,7 @@ public class AxiNSIO
currentPath = nextParent; currentPath = nextParent;
} }
UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->step6 True Return"); //UnityEngine.Debug.Log($"TryGetDirectoryAndParentsExcludingRoot->step6 True Return");
return true; return true;
} }