Здравствуйте, m_kostik, Вы писали:
_>...может просто есть некоторая стандартная API-шная функция?
Посмотрите
Shell Path Handling Functions
Здравствуйте, m_kostik, Вы писали:
_>Здравствуйте, уважаемые форумчане!
_>Столкнулся с такой проблемой: при помощи стандартного диалога открытия файла GetOpenFileName() получаю полный путь, что-то вроде "\\Athlon\Disk D\ppr\мой файл.xyz" (в случае, если файл расположен на другом компе ЛВС) или "D:\ppr\мой файл.xyz" (если файл расположен на том же компе, что и запускаемая программа). Мне нужно из полученной строки получить две другие — имя компьютера (если файл открывается по сети) и путь к файлу на этом компьютере.
Предположим вы имеете путь к файлу на сервере с ЛВС \\server\MyShare\1.txt. MyShare — это имя сетевого ресурса, фактически отображаемого в d:\data\share. Извне вы никак не получите d:\data\share\1.txt так как информация об отображении сетевых ресурсов в общем случае недоступно извне сервера. А вообще вы столкнулись с проблемой канонизированного представления пути к файлу. Суть проблемы в том, что нет единого универсального способа представить путь так, чтобы потом можно было сравнить два представления и понять, что это один и тот же файл. Для размашления — это всё ссылки на один и тот же файл:
"\\Athlon\Disk D\ppr\some subfolder\..\мой файл.xyz"
"\\Athlon\Disk D\ppr\somesu~1\..\мой файл.xyz"
"\\192.168.112.33\Disk D\ppr\мой файл.xyz"
"\\Athlon\d$\ppr\мой файл.xyz"
"\\Athlon\Shared resource ppr\мой файл.xyz"
Здравствуйте, SuhanovSergey, Вы писали:
SS>>Суть проблемы в том, что нет единого универсального способа представить путь так, чтобы потом можно было сравнить два представления и понять, что это один и тот же файл.
А если ещё вспомнить про junction points и hardlinks то вообще труба...
Здравствуйте, IID, Вы писали:
IID>Здравствуйте, SuhanovSergey, Вы писали:
SS>>>Суть проблемы в том, что нет единого универсального способа представить путь так, чтобы потом можно было сравнить два представления и понять, что это один и тот же файл.
IID>А если ещё вспомнить про junction points и hardlinks то вообще труба...
Ответы в лучших традициях =) Топиккастеру
не нужно "сравнить два представления и понять, что это один и тот же файл".