Проблема с доступом к файлу в приложении C #, работающем на Mac с использованием моно - PullRequest
2 голосов
/ 24 ноября 2011

Я разработал простое приложение .net, которое удаляет некоторые данные из Интернета и сохраняет их в файл (файл и exe-файл проекта находятся в одной папке).

Он отлично работает на Windows, но когда я запускаю его на Mac, используя 'Mono', я получаю эту ошибку

Доступ к пути «[путь]» запрещен.

Я создаю доступ к этому файлу с помощью Directory.GetCurrentDirectory.

вот путь, который я использую:

 System.IO.Directory.GetCurrentDirectory() + "\\abc.csv";

Ответы [ 2 ]

4 голосов
/ 24 ноября 2011

Вы не должны объединять каталоги, используя строки, если вы не хотите, чтобы ваши приложения были кроссплатформенными.

BAD :

Directory.GetCurrentDirectory() + "\\abc.csv";

Хорошо :

Path.Combine(Directory.GetCurrentDirectory(), "abc.csv");

Использование Path.Combine обеспечит использование правильных разделителей каталогов.

Если вам необходимо пройти через несколько каталогов, используйте Path.Combineнеоднократно:

Path.Combine(Path.Combine(Directory.GetCurrentDirectory(), "mydir"), "abc.csv");
1 голос
/ 24 ноября 2011

Возможно, вы используете неправильные косые черты в окнах, вы бы использовали что-то вроде "Путь \ к \ моему \ файлу", но в Mac косые черты поменялись местами на "Путь / к / моему / файлу"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...