На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
  
> преобразовать путь к файлу в UNC-путь , функция или чем?
    подскажите плз, есть ли функция какая, выдающая в результате однозначный путь к файлу?
    Например, у меня на компутере лежит файл: c:\test\123.txt
    Нужно в результате получить "универсальный" путь для всех компьютеров в сети.
    ExpandUNCFileName возвращает такой путь только с сетевыми дисками ('z:\123.txt' = '\\server\share\123.txt'). А если файл лежит на локальном диске, то и путь вернет "локальный" ('c:\test\123.txt' = 'c:\test\123.txt')
      Ну а как ты себе представляешь что бы он был универсальный ? Он разный всегда будет. Для этого тебе и дали 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:
        Цитата ZBugZ @
        Ну а как ты себе представляешь что бы он был универсальный ? Он разный всегда будет. Для этого тебе и дали ExpandUNCFileName что бы ты мог проверять все сам.

        так мне и надо получить универсальный. Чтобы ВСЕГДА начинался с 2-х слэшей и чтобы ВСЕГДА в начале было имя компьютера, на котором лежит файл. Зачем мне чего-то проверять?
        Вот либо писать свою функцию, либо есть уже готовая, учитывающая все то, чего я могу не учесть (по незнанию и т.п.)
          Путь не универсальный, это соглашение об именах универсальное.
          И имеет оно смысл только для сетевых папок.
          Хочешь такое имя сделай компьютер сервером.
            \\computername\c$\test\123.txt
              Цитата
              так мне и надо получить универсальный. Чтобы ВСЕГДА начинался с 2-х слэшей и чтобы ВСЕГДА в начале было имя компьютера, на котором лежит файл. Зачем мне чего-то проверять?
              Вот либо писать свою функцию, либо есть уже готовая, учитывающая все то, чего я могу не учесть (по незнанию и т.п.)

              Потому что как ты хочешь так не бывает, вот поэтому и поверять надо.
                Цитата ZBugZ @
                Потому что как ты хочешь так не бывает

                такой функции нет или что?
                Цитата Anatoly Podgoretsky @
                Хочешь такое имя сделай компьютер сервером

                а вот тут я сути вообще не уловил? Для кого мой компьютер сделать сервером?

                Вщм, функцию ессно уже написал (просто заменяет букву диска с двоеточием на имя компьютера с диском, но вместо двоеточия стоит "$". Т.е. было 'c:\test\123.txt', стало '\\mycomp\c$\test\123.txt'), но хотелось бы что-то более взрослое получить. Наверняка есть какие-то моменты, не учтенные мной.
                  Цитата
                  такой функции нет или что?

                  Нет конечно.

                  З.Ы. А я не очень пойму, а зачем тебе такая жестка привязка к диску и пути ?
                    Цитата Voice @
                    Цитата Anatoly Podgoretsky @
                    Хочешь такое имя сделай компьютер сервером

                    а вот тут я сути вообще не уловил? Для кого мой компьютер сделать сервером?

                    Для остальной сети, расшарь папку, иначе счастья не будет.
                    Windows Network это одноранговая сеть.
                    Сообщение отредактировано: Anatoly Podgoretsky -
                      я недавно спрашивал в этой теме

                      ExpandUNCFileName('Z:\test.exe') - вернёт "\\server\shared\test.exe"
                      ещё можно посмотреть Windows.WNetGetConnection
                      Сообщение отредактировано: Игорь Акопян -
                        Игорь Акопян, это другое. Ф-я просто говорит, к чему примаплен сетевой диск. А ТС-у нужно, чтобы локальный адрес шары преобразовывался в путь с адресом. В принципе тоже ничего сложного, но другое
                          Цитата
                          Нужно в результате получить "универсальный" путь для всех компьютеров в сети.


                          Универсального пути не существует.
                          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                          0 пользователей:


                          Рейтинг@Mail.ru
                          [ Script execution time: 0,0638 ]   [ 16 queries used ]   [ Generated: 3.05.24, 03:03 GMT ]