Страницы

Поиск по вопросам

вторник, 31 декабря 2019 г.

Как определяется каталог поиска файла?

#c_sharp #net


Есть такой код:

if(File.Exists("text.txt")) //работа с файлом


Вопрос в следующем: как определяется каталог в котором будет производится поиск указанного
файла? 

Как спровоцировать ситуацию, когда файл существует ( в случае с данным примером в
каталоге откуда было запущено приложение ) но условие не выполнится? 
    


Ответы

Ответ 1



Если указан относительный путь к файлу, то поиск будет проходить относительно текущего каталога. (Получить или изменить его можно при помощи Environment.CurrentDirectory.) Обычно при запуске программы текущий каталог наследуется от запускающей программы*. Это значит, что если вы запустите программу из командной строки, находясь в каталоге с программой, то текущий каталог программы будет совпадать с каталогом, где она расположена. Если вы запустите программу из другого каталога (всё равно, по относительному или по полному пути), каталог программы и её текущий каталог будут отличаться. Также вы можете установить произвольный рабочий каталог через ярлык: Ну и программа сама может поменять свой рабочий каталог в любой момент через уже упомянутое свойство Environment.CurrentDirectory. *Если в параметрах функции CreateProcess не указан необязательный параметр lpCurrentDirectory. Ну или для C# если в ProcessStartInfo не установлено свойство WorkingDirectory.

Комментариев нет:

Отправить комментарий