Sign in Join
FPDoc Onlineexperiment

ExtractRelativePath function

In unit sysutils

Extract a relative path from a filename, given a base directory.

Declaration

pascal
function ExtractRelativePath(const BaseName: UnicodeString; 
 const DestName: UnicodeString)
: UnicodeString

Description

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.

Errors

None.

See also

Example: ex35

pascal
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.

An experiment, built from development snapshots. Not the official Free Pascal or Lazarus documentation.