Преобразование относительного пути в абсолютный

Обработки - Универсальные обработки

Искал, но не нашел на просторах интернета функцию для преобразования относительного пути от заданного каталога к абсолютному. Пришлось рисовать самому.

Разбираясь с большими наборами файлов xml разложенных по разным папкам часто приходится сталкиваться с тем, что ссылаются они друг на друга через относительные пути. Возникла задача преобразования, осложненная тем, что часть путей указана в виде URL, часть - локально и т.д.

Данная функция позволяет преобразовывать относительные пути в абсолютные с учетом различных форматов разделителей для систем (в Windows - '\', в Линукс, на маках и в различных протоколах tcp, http и др. - '/'.

Обработка будет работать только с 1С версии выше 8.3.6 (используется СтрРазделить).

Скачать файлы

Наименование Файл Версия Размер
Преобразование относительного пути в абсолютный
.epf 6,79Kb
19.09.17
0
.epf 1.0.0 6,79Kb Скачать

См. также

Комментарии
1. Андрей Крутских (K_A_O) 493 22.09.17 08:51 Сейчас в теме
Я не смотрел обработку, возможно там сделано красиво, но для данной задачи можно использовать функции 1С: НайтиФайлы / НачатьПоискФайлов
2. Илья Галицков (galich) 129 22.09.17 10:54 Сейчас в теме
(1)
Я не смотрел обработку, возможно там сделано красиво, но для данной задачи можно использовать функции 1С: НайтиФайлы / НачатьПоискФайлов

Внутри папки - возможно, а если нужно сбоку?
Например, есть текущий адрес файла - "с:\docs\papka1\papka2\file.txt".
Как с помощью НайтиФайлы получить файл с относительным путем: "..\. .\papka3\another-file.txt"?
5. Андрей Крутских (K_A_O) 493 22.09.17 13:55 Сейчас в теме
(2)
Путь = "с:\docs\papka1\papka2";
Маска = "..\. .\papka3\another-file.txt";
М = НайтиФайлы(Путь, Маска, Ложь) ;
Для каждого Ф из М цикл
Сообщить(Ф.ПолноеИмя);
прервать;
КонецЦикла;
3. Sergey Andreev (starik-2005) 1161 22.09.17 10:58 Сейчас в теме
"Афтор, пеши есчё!" (с) )))

Для всех подряд вариантов вполне может подойти. Ценность стремится к нулю, ибо для файловой системы вполне прокатывают и такие пути:
Текст.Открыть("c:\xxx\yyy\zzz\. .\. .\bbb\ddd\text.txt");
Предположу, что для чтения файла с интернета такой подход тоже сработает.
4. Илья Галицков (galich) 129 22.09.17 12:10 Сейчас в теме
"Не нравится тебе вождь, ну и не ешь его" (с)

После трех-четырех подобных лазаний по файлам и папкам пути до следующего файла будут вида
"с:\ааа\ббб\..\..\ссс\..\ддд\еее\..\..\ффф.xml".
Может система это и съест, но самим прочитать и понять, куда попал - невозможно будет.
Оставьте свое сообщение