Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.14.142.115] |
|
Сообщ.
#1
,
|
|
|
подскажите плз, есть ли функция какая, выдающая в результате однозначный путь к файлу?
Например, у меня на компутере лежит файл: c:\test\123.txt Нужно в результате получить "универсальный" путь для всех компьютеров в сети. ExpandUNCFileName возвращает такой путь только с сетевыми дисками ('z:\123.txt' = '\\server\share\123.txt'). А если файл лежит на локальном диске, то и путь вернет "локальный" ('c:\test\123.txt' = 'c:\test\123.txt') |
Сообщ.
#2
,
|
|
|
Ну а как ты себе представляешь что бы он был универсальный ? Он разный всегда будет. Для этого тебе и дали ExpandUNCFileName что бы ты мог проверять все сам.
Юзай для проверки: Цитата Checks whether a given path is in UNC (Universal Naming Convention) format. Call IsUNCPath to check whether the given path is in UNC format. A UNC path is prefixed with two backslash characters (e.g. "\\computer\folder"). IsUNCPath returns true if the path is in UNC format; false otherwise. The following table lists the parameters expected by this method: |
Сообщ.
#3
,
|
|
|
Цитата ZBugZ @ Ну а как ты себе представляешь что бы он был универсальный ? Он разный всегда будет. Для этого тебе и дали ExpandUNCFileName что бы ты мог проверять все сам. так мне и надо получить универсальный. Чтобы ВСЕГДА начинался с 2-х слэшей и чтобы ВСЕГДА в начале было имя компьютера, на котором лежит файл. Зачем мне чего-то проверять? Вот либо писать свою функцию, либо есть уже готовая, учитывающая все то, чего я могу не учесть (по незнанию и т.п.) |
Сообщ.
#4
,
|
|
|
Путь не универсальный, это соглашение об именах универсальное.
И имеет оно смысл только для сетевых папок. Хочешь такое имя сделай компьютер сервером. |
Сообщ.
#5
,
|
|
|
\\computername\c$\test\123.txt
|
Сообщ.
#6
,
|
|
|
Цитата так мне и надо получить универсальный. Чтобы ВСЕГДА начинался с 2-х слэшей и чтобы ВСЕГДА в начале было имя компьютера, на котором лежит файл. Зачем мне чего-то проверять? Вот либо писать свою функцию, либо есть уже готовая, учитывающая все то, чего я могу не учесть (по незнанию и т.п.) Потому что как ты хочешь так не бывает, вот поэтому и поверять надо. |
Сообщ.
#7
,
|
|
|
Цитата ZBugZ @ Потому что как ты хочешь так не бывает такой функции нет или что? Цитата Anatoly Podgoretsky @ Хочешь такое имя сделай компьютер сервером а вот тут я сути вообще не уловил? Для кого мой компьютер сделать сервером? Вщм, функцию ессно уже написал (просто заменяет букву диска с двоеточием на имя компьютера с диском, но вместо двоеточия стоит "$". Т.е. было 'c:\test\123.txt', стало '\\mycomp\c$\test\123.txt'), но хотелось бы что-то более взрослое получить. Наверняка есть какие-то моменты, не учтенные мной. |
Сообщ.
#8
,
|
|
|
Цитата такой функции нет или что? Нет конечно. З.Ы. А я не очень пойму, а зачем тебе такая жестка привязка к диску и пути ? |
Сообщ.
#9
,
|
|
|
Цитата Voice @ Цитата Anatoly Podgoretsky @ Хочешь такое имя сделай компьютер сервером а вот тут я сути вообще не уловил? Для кого мой компьютер сделать сервером? Для остальной сети, расшарь папку, иначе счастья не будет. Windows Network это одноранговая сеть. |
Сообщ.
#10
,
|
|
|
я недавно спрашивал в этой теме
ExpandUNCFileName('Z:\test.exe') - вернёт "\\server\shared\test.exe" ещё можно посмотреть Windows.WNetGetConnection |
Сообщ.
#11
,
|
|
|
Игорь Акопян, это другое. Ф-я просто говорит, к чему примаплен сетевой диск. А ТС-у нужно, чтобы локальный адрес шары преобразовывался в путь с адресом. В принципе тоже ничего сложного, но другое
|
Сообщ.
#12
,
|
|
|
Цитата Нужно в результате получить "универсальный" путь для всех компьютеров в сети. Универсального пути не существует. |