Описание вспомогательной функции


_PathFull

Возвращает абсолютный путь, основанный на предоставленном относительном пути.

_PathFull($var_sRelativePath,$var_sBasePath)

Параметры

$var_sRelativePath Относительный путь
$var_sBasePath [необязательный] Базовый путь, по умолчанию @WorkingDir

Возвращаемое значение

Возвращает абсолютный путь.
UNC-пути поддерживаются.
Передайте "\", чтобы получить корневой диск $var_sRelativePath.
Передайте "" или ".", чтобы получить $var_sRelativePath.
Относительный путь будет построен относительно $var_sRelativePath. Чтобы обойти такое поведение, используйте абсолютный путь.

В версии 11.9 добавлено получение абсолютных путей из относительных вида %PATH%, %TCIMG_PATH%, %COMMANDER_PATH%, %WINDIR% ...
В версии 16.8 добавлено получение абсолютных и относительных путей из глобальных переменных GLOBALNAME см. Дополнение №23
В версии 22.4 добавлено получение абсолютных путей из относительных вида $f... см. Дополнение №8

Примечания


Функцию можно подключить через команду exect

См. также

DirCreate, FileGetLongName, FileGetShortName

Примеры:
 Как создать кнопку?


exect=$var_sp=_PathFull('../../file.txt','"%P"')||_ViewValues('$var_sp') ;; просмотр результата функции _PathFull() - возвращает путь относительно активной панели

exect=$var_sp=_PathFull('../../file.txt','"%T"')||_ViewValues('$var_sp') ;; просмотр результата функции _PathFull() - возвращает путь относительно другой панели

exect=$var_sp=_PathFull('../../','"%P"') patha=$var_sp ;; перейти в активной панели на 2 уровня вверх

exect=$var_sp=_PathFull('../wlx','"%P"') patha=$var_sp ;; перейти в активной панели в параллельный каталог wlx

exect=$var_sp=_PathFull('%%TCIMG_TEMP%%\font.txt')||_ViewValues('$var_sp') ;; получить абсолютный путь заданного относительного

exect=$var_sp=_PathFull('$f302')||_ViewValues('$var_sp') ;; получить абсолютный путь, заданного сокращения

exect=$var_stime=FileGetTime(_PathFull('$f302'),0,1)||_ViewValues('$var_stime') ;; получить время последней модификации заданного файла

exect=$var_s=_PathFull('$f202\Puzzle.bmp') sends=#??-6^||#K5!!$var_s^ GLOBALSENDS<a> ;; размножить заданный путь 5 раз
exect=$var_sp=_PathFull('$f202\Puzzle.bmp')||$var_nw=1200||$var_nh=900 exect=$var_wh=StringSplit('<info=i3$var_sp//>','x') exect=$var_iw=Ceiling($var_nw/$var_wh[1])||$var_iw=Number($var_iw)||$var_ih=Ceiling($var_nh/$var_wh[2])||$var_ih=Number($var_ih) sends=#??-6^||#K$var_iw*$var_ih!!$var_sp^ imgnz=$GLOBALSENDS||"%t"//0||$var_iw,$var_ih||upd<3> ;; размножить небольшое изображение по ширине и по вертикали под минимальный заданный размер 1200х900, создав в другой панели изображение именем файла
exect=$var_sp=_PathFull('$f202\Puzzle.bmp')||$var_nw=1200||$var_nh=900 exect=$var_wh=StringSplit('<info=i3$var_sp//>','x') exect=$var_iw=Ceiling($var_nw/$var_wh[1])||$var_iw=Number($var_iw)||$var_ih=Ceiling($var_nh/$var_wh[2])||$var_ih=Number($var_ih) sends=#??-6^||#K$var_iw*$var_ih!!$var_sp^ imgnz=$GLOBALSENDS||"%t"//0||$var_iw,$var_ih imgcf=GLOBALIMGNZ<1>||"%t"//1||pruning<0,0,@H-900,@W-1200>||upd<3> ;; размножить небольшое изображение по ширине и по вертикали под минимальный заданный размер 1200х900 + обрезать до заданного размера, создав в другой панели изображение именем файла
exect=$var_sp=_PathFull('$f202\Puzzle.bmp')||$var_nw=1202||$var_nh=902 exect=$var_wh=StringSplit('<info=i3$var_sp//>','x') exect=$var_iw=Ceiling($var_nw/$var_wh[1])||$var_iw=Number($var_iw)||$var_ih=Ceiling($var_nh/$var_wh[2])||$var_ih=Number($var_ih) sends=#??-6^||#K$var_iw*$var_ih!!$var_sp^ imgnz=$GLOBALSENDS||"%p"//0||$var_iw,$var_ih||framewh<FF0000|2|2> imgcf=GLOBALIMGNZ<1>||"%p"//1||pruning<0,0,@H-902,@W-1202>||upd<1> ;; размножить небольшое изображение Puzzle.bmp по ширине и по вертикали с красной рамкой под минимальный заданный размер 1202х902 + обрезать до заданного размера, создав в другой панели изображение именем файла
exect=$var_sp=_PathFull('$f254?1')||_ViewValues('$var_sp') ;; получить путь временной папки Temp1

exect=$var_sp=_PathFull('%%TCIMG_TEMP%%1')||_ViewValues('$var_sp') ;; получить путь временной папки Temp1

close=ACTIVE exect=Run(_PathFull('%%COMMANDER_PATH%%\TOTALCMD.EXE'),'''',@SW_MAXIMIZE) ;; закрыть активное окно TC и запустить

lends=name1,name2??-6, olist=$GLOBALLENDS||?V|^^|_PathFull('$f300\Personal\commands\')||$$.png GLOBALOLIST<a> ;; получить полные пути файлов, соединяя имена, путь и расширение
exect=ShellExecute(_PathFull('$f50')) ;; открыть "Мой Компьютер" в проводнике

exect=ShellExecute(_PathFull('$f51')) ;; открыть "Панель инструментов" в проводнике

exect=ShellExecute(_PathFull('$f57')) ;; открыть "Мои документы" в проводнике

exect=$var_sp=_PathFull('C:\1\2\3\4\5\6\7\../')||_ViewValues('$var_sp') ;; просмотр результата функции _PathFull() - возвращает путь на 1 уровень вверх

exect=$var_sp=_PathFull('C:\1\2\3\4\5\6\7\../../')||_ViewValues('$var_sp') ;; просмотр результата функции _PathFull() - возвращает путь на 2 уровня вверх

exect=$var_s=FileExists(_PathFull('$f250\TCIMG_BLACK.chm'))?'TCIMG_BLACK':'TCIMG' runhp=x||$f250\$var_s.chm||Справка~~$var_s||1 ;; запустить тёмную справку TCIMG, если не обнаружена - светлую

dilog=[input=Относительный~~путь|Введите~~относительный~~путь] exect=MsgBox(0,'Абсолютный~~путь',_PathFull('GLOBALINPUT<1>')) ;; ввести относительный путь в диалоге, перевести в абсолютный и вывести в сообщении


© Аверин Андрей для Total Commander Image  Averin-And@yandex.ru