Куда обращается File.Exists(path) без полного пути?
Есть некая dll, которую я подцепляю в wcf сервису.
В dll есть метод конфигурации, куда надо указать путь к файлу.
Т.к. сервис будет лежать где то на серваке, я не могу указать туда полный путь.
А при указании path = "nameFile", он его не находит, куда бы этот nameFile я не клал.
Вопрос: где ищет File.Exists(path), если path не полный путь к файлу?
LiptonOlolo: Это не обязательно. Можно запускать программу находясь в другом текущем каталоге, не в том где находится программа (например с помощью указания полного пути к запускаемой программе или запускать ее по ярлыку, в котором указан не стандартный рабочий каталог). Тогда для программы текущим каталогом будет тот из которого вы запускаете программу.
Для большего понимания проведите эксперимент:
Напишите простейший батник, который выводит текущий каталог и позапускайте этот батник разными способами: из проводника, из командной строки, находясь в разных каталогах и вызывая батник по полному пути к нему.
Команда печатающая текущий каталог:
cd
Дополню себя.
1. В ярлыках винды есть параметр "Рабочая папка". Вот это и есть текущий каталог, который устанавливается для запускаемого приложения. Почему этот параметр назвали так как назвали я не в курсе.
Но, например, в справке к команде cd (cd /?) речь идет именно о текущем каталоге, да и в любой литературе фигурирует именно текущий каталог, а не рабочий.
2.В самом приложении вы можете сменить текущий каталог.
3.Насколько я могу судить, сейчас под рабочим каталогом понимается в основном именно текущий каталог. Об этом даже википедия говорит. Но сам термин, имхо, не правильный.
4.
Есть папка с проектом, который я открываю в VS. А текущий каталог программы это что?
На самом деле не знаю точно, но предполагаю, что когда запускаете программу из студии, то текущим каталогом будет каталог где лежит исполняемый файл. По крайней мере в Eclipse это так.
Griboks: Возможно. Но мне "режет ухо".
Поясню: со времен DOSа то о чем мы говорим называлось текущим каталогом.
В винде в разных местах используются оба варианта названий для одной и той же сущности и это не есть правильно и может вводить в заблуждение.
Лично для меня текущий каталог - это понятие файловой системы, а рабочий - это тот где в данный момент находятся мои рабочие файлы. Если это перенести на программу, то рабочий каталог программы будет тот где лежит ее исполняемый файл. И это не то же самое, что текущий каталог.
res2001: вот цитата из вашей вики
"Рабочий каталог
Рабочий каталог (англ. working directory, также текущий каталог или текущая директория) процесса — в информатике, каталог файловой системы, который используется для нахождения файлов, указанных только по имени либо по относительному пути."