2016-02-01 5 views
0

Мне нужно то, что соответствует обратному значению функции ExpandUNCFilename: учитывая имя UNC для файла на сетевом компьютере, мне нужно имя файла для имени файла для этого файла, так как оно известно локально на этом сетевом компьютере. Например, если я перехожу в «\\ SVR1 \ SHARE1 \ Subdir \ File.nam» и предполагая, что «SHARE1» соответствует фактическому пути «C: \ ProgramData» в «SVR1», я бы получил «C: \ ProgramData» \ Subdir \ File.nam ".Delphi ExpandUNCFilename в обратном направлении?

(Для чего это необходимо? Поскольку Firebird требует, чтобы его имена файлов FDB были локализованы относительно машины, на которой запущен сервер, но мне нужно имя UNC для других вещей - я бы предпочел просто сохранить и передать UNC name и cvt для локального имени при подключении к серверу.)

Существует ли такая функция? Я еще не нашел ...

+1

Возможный (частичный) дубликат [Получить локальное имя сетевого ресурса в Delphi] (http://stackoverflow.com/a/24576022/11480) –

+0

Спасибо, проследим за этой нитью. –

ответ

0

Невозможно сделать это, если у вас нет кода, запущенного на другом компьютере, где хранятся файлы. На другом компьютере может быть запущена другая операционная система, а не Windows.

Таким образом, вы должны разрешить пользователю настраивать сопоставление между путём UNC-пути и локальной папкой.

Или напишите инструмент, который запускается на другом компьютере и который вы можете запросить для отображения. (Но такой инструмент будет представлять угрозу безопасности)

+0

Я смущен нисходящим. Будет ли избиратель заботиться о разработке? –

+0

В связанном дублированном вопросе есть решение. Но он работает только в том случае, если у вас есть учетные данные для учетной записи администратора на другом компьютере. – NineBerry