forked from sin365/AxibugEmuOnline
NS痛苦调试日志
This commit is contained in:
parent
a6cbd94103
commit
8a415aa10f
@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user