[Overview][Constants][Types][Classes][Procedures and functions][Index] | Reference for unit 'FileUtil' (#lcl)

# CreateRelativePath

CreateRelativePath - given an absolute file path and aBaseDirectory, create a file path relative to the given base directory

## Declaration

Source position: fileutil.pas line 92

`function CreateRelativePath(`
`const Filename: String;`
`const BaseDirectory: String;`
`UsePointDirectory: Boolean = false`
`):String;`

## Arguments

`Filename` |  | The absolute FileName for which a relative path is to be created
`BaseDirectory` |  | BaseDirectory of the absolute search path

## Function result

The file name expressed as path relative to the current directory

## Description

CreateRelativePath - given an absolute path and a BaseDirectory, create a file path relative to the given base directory

The returned string includes the correct number of dots and double dots to signify relativity to the current directory (eg ../../or ..\..\ etc). The inverse operation is to create an absolute file path:

    RelPath:=CreateRelativePath(AbsPath,BaseDir);
    if FilenameIsAbsolute(RelPath) then
      NewAbsPath:=RelPath
    else
      NewAbsPath:=AppendPathDelim(BaseDir)+RelPath;

## Errors

If BaseDirectory is empty, functions exits and returns with Result equal to Filename; if Filename is empty, function exits with empty Result

The latest version of this document can be found at lazarus-ccr.sourceforge.net.