public bool is_absolute (string file_name)

Returns true if the given file_name is an absolute file name.

Note that this is a somewhat vague concept on Windows.

On POSIX systems, an absolute file name is well-defined. It always starts from the single root directory. For example "/usr/local".

On Windows, the concepts of current drive and drive-specific current directory introduce vagueness. This function interprets as an absolute file name one that either begins with a directory separator such as "\Users\tml" or begins with the root on a drive, for example "C:\Windows". The first case also includes UNC paths such as "\\\\myserver\docs\foo". In all cases, either slashes or backslashes are accepted.

Note that a file name relative to the current drive root does not truly specify a file uniquely over time and across processes, as the current drive is a per-process value and can be changed.

File names relative the current directory on some specific drive, such as "D:foo/bar", are not interpreted as absolute by this function, but they obviously are not relative to the normal current directory as returned by getcwd or get_current_dir either. Such paths should be avoided, or need to be handled using Windows-specific code.

Example: Check whether a path is absolute:

public static int main (string[] args) {
// Output: ``true``
bool tmp = Path.is_absolute ("/my/absolute/path.txt");
print ("%s\n", tmp.to_string ());

// Output: ``false``
tmp = Path.is_absolute ("../my/absolute/path.txt");
print ("%s\n", tmp.to_string ());

return 0;

valac --pkg glib-2.0 GLib.Path.is_absolute.vala



a file name


true if file_name is absolute

Namespace: GLib.Path
Package: glib-2.0