UNC-путь без имени хоста?

423
Anthony

У меня есть приложение, которое открывает файл, путь которого установлен на то, что выглядит как путь UNC, но с удаленной двойной косой чертой и именем хоста, т.е. вместо

\\HOSTNAME\SHARED\FILE 

она имеет

\SHARED\FILE 

Это относится к общему ресурсу SHAREDна локальной машине.

Все это работало нормально, пока я не переключил приложение для запуска в качестве службы Windows. Теперь приложение не может открыть файл.

Служба работает как учетная запись домена, которая имеет полный контроль над общим ресурсом.

Я хотел бы понять значение этого формата пути, почему служба Windows не может получить доступ к файлу, указанному в нем, но консольное приложение может, и как заставить это работать без изменения пути (если это возможно).

2

1 ответ на вопрос

1
grawity

It's not an UNC path anymore. It's a regular local path that starts at the root (\) of the same drive as the current working directory of the process.

That is, if the cwd is c:\windows, the path \users\anthony would refer to c:\users\anthony.

ОК, службы Windows работают в `% WinDir% \ System32`, поэтому` \ SHARED \ FILE` ссылается на `C: \ SHARED \ FILE`, но на самом деле` SHARED` находится на диске `D: \`. Спасибо. Anthony 9 лет назад 1