为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
紫衣仙女 2022-12-31 12:45:31
我在 Unity 3D 中开发,有时会编写编辑器工具。有时我会遇到目录分隔符的问题。例如,Unity API 始终使用“/”来请求 AssetDatabase 路径。但是 IO 类,如文件、目录或路径使用系统分隔符,因此它在 Windows 上是“\”,在 macOS 上是“/”。即使在 Windows 上也可以让它们默认使用“/”吗?也许有一些我可以在运行时初始化阶段初始化的文件?每次都用'/'替换'\'来统一API调用很烦人。我的代码现在看起来像这样,我认为它很丑陋:foreach (var prefabPath in prefabPaths){#if UNITY_EDITOR_WIN    prefabPath = prefabPath.Replace('\\', '/');#endif    .............}
查看完整描述

1 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

不幸的是,这是添加逻辑最少的最佳方法。我可以帮你稍微修饰一下。


//using System;

//using System.IO;


foreach (string _preFabPath in PreFabPaths)

{

#if UNITY_EDITOR_WIN

    _preFabPath = _preFabPath.Replace(Path.DirectorySeparatorChar, '/');

#endif

}

DirectorySeparatorChar 将使用您所在系统的本地路径分隔符。

强调封装的私有变量将有助于将 preFabPath 识别为 ForEach 封装的变量。


查看完整回答
反对 回复 2022-12-31
  • 1 回答
  • 0 关注
  • 97 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信