Extract a relative path from a filename, given a base directory.
Source position: finah.inc line 35
function ExtractRelativePath( |
const BaseName: UnicodeString; |
const DestName: UnicodeString |
):UnicodeString; |
const BaseName: RawByteString; |
const DestName: RawByteString |
ExtractRelativePath constructs a relative path to go from BaseName to DestName. If DestName is on another drive (Not on Unix-like platforms) then the whole Destname is returned.
Note that directories must end on a path delimiter for this function to work correctly. If not, the last part is stripped and treated as a file name.
None.
|
Extract the filename part from a full path filename. |
|
|
Extract the path from a filename. |
|
|
Extract the drive and directory part of a filename. |
|
|
Extract the drive part from a filename. |
|
|
Return the extension from a filename. |
Program Example35; { This program demonstrates the ExtractRelativePath function } Uses sysutils; Procedure Testit (FromDir,ToDir : String); begin Write ('From "',FromDir,'" to "',ToDir,'" via "'); Writeln (ExtractRelativePath(FromDir,ToDir),'"'); end; Begin Testit ('/pp/src/compiler/','/pp/bin/win32/ppc386/'); Testit ('/pp/bin/win32/ppc386/','/pp/src/compiler/'); Testit ('/pp/bin/win32/','/pp/src/compiler/ppcx386/'); Testit ('/pp/bin/win32/','/pp/src/compiler/ppcx386'); Testit ('/pp/bin/win32','/pp/src/compiler/ppcx386'); Testit ('e:/pp/bin/win32/ppc386/','d:/pp/src/compiler/'); Testit ('e:\pp\bin\win32\ppc386/','d:\pp\src\compiler/'); Testit ('C:\FPC\3.0.2\','C:\FPC\3.0.2\'); Testit ('C:\FPC\3.0.2\','C:\FPC\3.0.4rc1\'); Testit ('Q:\','Q:\FPC\3.0.4rc1\'); End.