Можно ли переопределить символ разделителя системного каталога для классов ввода-вывода в C #? - PullRequest
0 голосов
/ 25 апреля 2019

Я занимаюсь разработкой в ​​Unity 3D и иногда пишу инструменты редактора.Иногда я встречаю проблему с символом разделителя каталогов.Unity API всегда использует «/», например, для запроса путей AssetDatabase.Но классы ввода-вывода, такие как File, Directory или Path, используют системный разделитель, поэтому в Windows это «\», а в macOS «/».Можно ли заставить их использовать «/» по умолчанию даже в Windows?Может быть, есть поле, которое я могу инициализировать на этапе инициализации во время выполнения?Раздражительно каждый раз заменять '\' на '/' для унификации вызовов API.Теперь мой код выглядит так, и я думаю, что это ужасно:

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

1 Ответ

1 голос
/ 25 апреля 2019

К сожалению, это лучший способ сделать это с наименьшим количеством добавленной логики.Я могу помочь вам немного это исправить.

//using System;
//using System.IO;

foreach (string _preFabPath in PreFabPaths)
{
#if UNITY_EDITOR_WIN
    _preFabPath = _preFabPath.Replace(Path.DirectorySeparatorChar, '/');
#endif
}
  • DirectorySeparatorChar будет использовать разделитель пути, родной для системы, в которой вы находитесь.
  • Подчеркивание инкапсулированных рядовых элементов поможет идентифицировать preFabPath какинкапсулированная переменная ForEach.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...