![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить унифицированное имя файла?
тимохов © (2008-04-14 19:02:00)Здравствуйте.
СИТУАЦИЯ
Допустим, есть 2 полных пути к файлам "E:\abc.pas" и "\\mainserver\dev\abc.pas", которые указывают на один и тот же файл (здесь диск E: подключен к ресурсу "\\mainserver\dev").
ЗАДАЧА
Я хочу, имея 2 строки, которые представляют полные имена файлов, иметь возможность определить, указывают ли они на один и тот же файл или нет, вне зависимостиот того, какой формат представления имени файла используется - UNC или с буквой диска.
ВОПРОС
Можно ли как-то выполнить мою задачу легко и красиво?
Заранее спасибо.
ЗЫ. В принципе я умею с помощью WNetOpenEnum получать ассоциативный массив: <имя диска> - <удаленный путь>. Потом по идее могу попытаться преобразовать полные имена файлов к единому формату. Вопрос в том, если ли что-то готовое в WinAPI на этот счет?
тимохов (2008-04-15 15:16:00) [21]Вопрос возник.
СИТУАЦИЯ
Когда я выполняю функцию ExpandUNCFileName из обычного приложения, то все работает - drive-based имя переводится в формат UNC.
Если же запускаю из под сервиса, то как было drive-based имя, так оно и осталось.
ВОПРОС
В чем может быть причина?
ТТХ
1. Win2000.
2. Сервис писан на основе дельфового TService.
3. Сервис запускается из под LocalSystem.
тимохов (2008-04-14 20:03:00) [22]Вот еще какая функция есть в sysutils ExpandUNCFileName.
Она, собсно, и использует указанную фуницию WNetGetUniversalName в конечном итоге.
тимохов (2008-04-14 19:55:00) [23]
> Leonid Troyanovsky © (14.04.08 19:23) [1]
да, видимо, это оно.
спасибо.
Leonid Troyanovsky (2008-04-14 19:23:00) [24]
> тимохов (14.04.08 19:02)
> Вопрос в том, если ли что-то готовое в WinAPI на этот счет?
WNetGetUniversalName ?
--
Regards, LVT.