>relativePath = Sys(2014, "C:\VHdev\appli\Dooxi\Progs\dooxi.scx", Home(1)) >? relativePath && ..\..\VHDEV\APPLI\DOOXI\PROGS\DOOXI.SCX > >relativePath = Strtran(; > m.relativepath; >, Strtran(m.relativepath, '..\'); >, Substr("C:\VHdev\appli\Dooxi\Progs\dooxi.scx", Atc(Strtran(m.relativepath, '..\'), "C:\VHdev\appli\Dooxi\Progs\dooxi.scx")); >) >? relativePath && ..\..\VHdev\appli\Dooxi\Progs\dooxi.scx >WOW. I should of seen this. I guess as I get older, my programming sword is losing it edge.
* Description: return the fullpath to a file is the case found on the disk * Parameters: tcFilename : name of the file to search for * tcRelPath : name/path for form relative path from * Return: path to file * Syntax: RealFullPath( <file> [,<relpath>] ) *------------------------------------------------------------ *PROCEDURE RelaFullPath LPARAMETERS tcFilename, tcRelPath LOCAL ofs, lcFile lcFile = FULLPATH(tcFilename) IF FILE(m.lcFile) LOCAL ofs, _folder, _file ofs = CREATEOBJECT("scripting.FileSystemObject") _folder = m.ofs.getfolder(ADDBS(JUSTPATH(m.lcFile))) _file = _folder.FILES(JUSTFNAME(m.lcFile)) lcFile = _file.PATH ENDIF *-- resolve relative path IF PCOUNT()>1 LOCAL relPath relPath = SYS(2014, m.lcFile, FULLPATH(m.tcRelPath) ) lcFile = STRTRAN( m.relPath, STRTRAN(m.relPath, '..\') , SUBSTR(m.lcFile, ATC(STRTRAN(m.relPath, '..\'), m.lcFile)) ) ENDIF RETURN lcFile * EOF REALFULLPATH.PRG *Thanks again.