是否可以在 C# 中覆盖 IO 类的系统目录分隔符?



我正在Unity 3D中开发,有时正在编写编辑器工具。有时我会遇到目录分隔符的问题。例如,Unity API 始终使用"/"来请求资产数据库路径。但是 IO 类(如文件、目录或路径)使用系统分隔符,因此它在 Windows 上是"\",在 macOS 上是"/"。即使在 Windows 上,是否可以让他们默认使用"/"?也许我可以在运行时初始化阶段初始化一些文件?每次将"\"替换为"/"以统一 API 调用很烦人。我的代码现在看起来像这样,我认为它很丑陋:

foreach (var prefabPath in prefabPaths)
{
#if UNITY_EDITOR_WIN
prefabPath = prefabPath.Replace('\', '/');
#endif
.............
}

不幸的是,这是使用最少的添加逻辑来做到这一点的最佳方法。我可以帮你润色一下。

//using System;
//using System.IO;
foreach (string _preFabPath in PreFabPaths)
{
#if UNITY_EDITOR_WIN
_preFabPath = _preFabPath.Replace(Path.DirectorySeparatorChar, '/');
#endif
}
目录分隔符
  • 字符将使用您所在系统本机的路径分隔符。
  • 为封装的私有添加下划线将有助于将 preFabPath 标识为 ForEach 封装的变量。

相关内容

  • 没有找到相关文章

最新更新