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

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


foreach (var prefabPath in prefabPaths)

{

#if UNITY_EDITOR_WIN

    prefabPath = prefabPath.Replace('\\', '/');

#endif

    .............

}


紫衣仙女
浏览 101回答 1
1回答

胡说叔叔

不幸的是,这是添加逻辑最少的最佳方法。我可以帮你稍微修饰一下。//using System;//using System.IO;foreach (string _preFabPath in PreFabPaths){#if UNITY_EDITOR_WIN    _preFabPath = _preFabPath.Replace(Path.DirectorySeparatorChar, '/');#endif}DirectorySeparatorChar 将使用您所在系统的本地路径分隔符。强调封装的私有变量将有助于将 preFabPath 识别为 ForEach 封装的变量。
打开App,查看更多内容
随时随地看视频慕课网APP