CL_PathHelp Class Reference
[clanCore I/O Data]

Path helper functions. More...

#include <path_help.h>

List of all members.

Operations



enum  PathType { path_type_file, path_type_virtual }
 

Path types.

More...
static CL_String make_absolute (const CL_String &base_path, const CL_String &relative_path, PathType path_type=path_type_file)
 Convert a relative path to an absolute path.
static CL_String make_relative (const CL_String &base_path, const CL_String &absolute_path, PathType path_type=path_type_file)
 Converts an absolute path into a path relative to a base path.
static bool is_absolute (const CL_String &path, PathType path_type=path_type_file)
 Check if a path is absolute.
static bool is_relative (const CL_String &path, PathType path_type=path_type_file)
 Check if a path is relative.
static CL_String normalize (const CL_String &path, PathType path_type=path_type_file)
 Normalize a path.
static CL_String add_trailing_slash (const CL_String &path, PathType path_type=path_type_file)
 Add trailing slash or backslash to path.
static CL_String remove_trailing_slash (const CL_String &path)
 Remove trailing slash or backslash from path.
*static CL_String get_location (const CL_String &fullname, PathType path_type=path_type_file)
 Returns the drive (C:) or share name ( \ \ computer \ share).
static CL_String get_basepath (const CL_String &fullname, PathType path_type=path_type_file)
 Returns the path excluding the location and filename.
static std::vector< CL_Stringsplit_basepath (const CL_String &fullname, PathType path_type=path_type_file)
 Splits the path, excluding the location, into parts.
static CL_String get_fullpath (const CL_String &fullname, PathType path_type=path_type_file)
 Returns the path including the location.
static CL_String get_filename (const CL_String &fullname, PathType path_type=path_type_file)
 Returns the filename part of a fullname.
static CL_String get_basename (const CL_String &fullname, PathType path_type=path_type_file)
 Returns the basename part of a fullname.
static CL_String get_extension (const CL_String &fullname, PathType path_type=path_type_file)
 Returns the extension part of a fullname.
static CL_String get_fullname (const CL_String &fullpath, const CL_String &filename, PathType path_type=path_type_file)
 Create a fullname from parts.
static CL_String get_fullname (const CL_String &fullpath, const CL_String &filename, const CL_String &extension, PathType path_type=path_type_file)
 Create a fullname from parts.
static CL_String get_fullname (const CL_String &location, const CL_String &basepath, const CL_String &filename, const CL_String &extension, PathType path_type=path_type_file)
 Create a fullname from parts.
static CL_String combine (const CL_String &part1, const CL_String &part2, PathType path_type=path_type_file)
 Concatenates two strings into one adding a trailing slash to first string if missing.

Detailed Description

Path helper functions.


Member Enumeration Documentation

Path types.

Enumerator:
path_type_file 

Native file system path. (On windows, '/' are turned into '\'. On linux, '\' are turned into '/').

path_type_virtual 

Path using slashes ('/').


Member Function Documentation

static CL_String CL_PathHelp::add_trailing_slash ( const CL_String path,
PathType  path_type = path_type_file 
) [static]

Add trailing slash or backslash to path.

This function checks if a path already has a trailing slash/backslash and adds it if its missing.

Parameters:
path The path to use
path_type The path type (of path)
Returns:
The converted path
static CL_String CL_PathHelp::combine ( const CL_String part1,
const CL_String part2,
PathType  path_type = path_type_file 
) [static]

Concatenates two strings into one adding a trailing slash to first string if missing.

Parameters:
part1 First part of path
part2 Second part of path
path_type The path type (of path)
static CL_String CL_PathHelp::get_basename ( const CL_String fullname,
PathType  path_type = path_type_file 
) [static]

Returns the basename part of a fullname.

param: fullname = The full path to use param: path_type = The path type

Returns:
The filename (excluding the extension)
static CL_String CL_PathHelp::get_basepath ( const CL_String fullname,
PathType  path_type = path_type_file 
) [static]

Returns the path excluding the location and filename.

Parameters:
fullname The full path name to use
path_type The path type
Returns:
The base path

If (path_type == path_type_virtual) or not using windows, then this function returns the path (excluding filename)

static CL_String CL_PathHelp::get_extension ( const CL_String fullname,
PathType  path_type = path_type_file 
) [static]

Returns the extension part of a fullname.

If no extension was found, an empty string is returned. param: fullname = The full path to use param: path_type = The path type

Returns:
The extension
static CL_String CL_PathHelp::get_filename ( const CL_String fullname,
PathType  path_type = path_type_file 
) [static]

Returns the filename part of a fullname.

param: fullname = The full path to use param: path_type = The path type

Returns:
The filename
static CL_String CL_PathHelp::get_fullname ( const CL_String location,
const CL_String basepath,
const CL_String filename,
const CL_String extension,
PathType  path_type = path_type_file 
) [static]

Create a fullname from parts.

param: location = The location to use param: fullpath = The full path to use param: filename = The filename to use param: extension = The filename extension to use param: path_type = The path type

Returns:
The full name
static CL_String CL_PathHelp::get_fullname ( const CL_String fullpath,
const CL_String filename,
const CL_String extension,
PathType  path_type = path_type_file 
) [static]

Create a fullname from parts.

param: fullpath = The full path to use param: filename = The filename to use param: extension = The filename extension to use param: path_type = The path type

Returns:
The full name
static CL_String CL_PathHelp::get_fullname ( const CL_String fullpath,
const CL_String filename,
PathType  path_type = path_type_file 
) [static]

Create a fullname from parts.

param: fullpath = The full path to use param: filename = The filename to use param: path_type = The path type

Returns:
The full name
static CL_String CL_PathHelp::get_fullpath ( const CL_String fullname,
PathType  path_type = path_type_file 
) [static]

Returns the path including the location.

param: fullname = The full path to use (including filename) param: path_type = The path type

Returns:
The full path including the location (excluding filename)
* static CL_String CL_PathHelp::get_location ( const CL_String fullname,
PathType  path_type = path_type_file 
) [static]

Returns the drive (C:) or share name ( \ \ computer \ share).

If (path_type == path_type_virtual) or not using windows, then this function always returns an empty string.

Parameters:
fullname The full path name to use
path_type The path type
Returns:
The drive or share name
static bool CL_PathHelp::is_absolute ( const CL_String path,
PathType  path_type = path_type_file 
) [static]

Check if a path is absolute.

Parameters:
path The path to check
path_type The path type (of path)
Returns:
true if path is absolute
static bool CL_PathHelp::is_relative ( const CL_String path,
PathType  path_type = path_type_file 
) [static]

Check if a path is relative.

Parameters:
path The path to check
path_type The path type (of path)
Returns:
true if path is relative
static CL_String CL_PathHelp::make_absolute ( const CL_String base_path,
const CL_String relative_path,
PathType  path_type = path_type_file 
) [static]

Convert a relative path to an absolute path.

Parameters:
base_path The base path (Does not require a trailing slash)
relative_path The relative path
path_type The path type
Returns:
The converted path

This function behaves differently depending on OS and path_type. In Windows, if the relative_path begins with a drive letter, and the driver letter differs from the base path, the path is converted to an absolute path using the current directory for that drive. Likewise, if the specified base path does not include a drive or its path is not absolute, the current drive and directory is added. The function converts all slashes to backslashes.

If the OS is unix based, there is no location (drive or share name) and the function also converts all backslashes to slashes.

If the type is path_type_virtual, the base path is required to be absolute. If it does not start in a slash, the function prefixes a slash to the path. The current drive or directory is never taken into account and all backslashes are converted to slashes.

This function calls normalise() on base_path and relative_path.

Example #1:

 CL_String str = CL_PathHelp::make_absolute("ABD/DEF/", "GFX/Filename.txt", CL_PathHelp::path_type_file);
 On Linux: str = "/home/user/ABD/DEF/GFX/Filename.txt"
 On Windows: str = "c:\user\ABD\DEF\GFX\Filename.txt"

Example #2:

 CL_String str = CL_PathHelp::make_absolute("/ABD/DEF/", "../Filename.txt", CL_PathHelp::path_type_file);
 On Linux: str = "/ABD/Filename.txt"
 On Windows: str = "c:\ABD\Filename.txt"

Example #3:

 CL_String str = CL_PathHelp::make_absolute("/ABD/DEF/", "../Filename.txt", CL_PathHelp::path_type_virtual);
 On Linux: str = "/ABD/Filename.txt"
 On Windows: str = "/ABD/Filename.txt"
static CL_String CL_PathHelp::make_relative ( const CL_String base_path,
const CL_String absolute_path,
PathType  path_type = path_type_file 
) [static]

Converts an absolute path into a path relative to a base path.

Parameters:
base_path The base path (Does not require a trailing slash)
absolute_path The absolute path
path_type The path type
Returns:
The converted path

This function is the inverse of CL_FileHelp::make_absolute. Please see the detailed information for make_absolute for more information about behavior.

This function calls normalise() on the base_path and absolute_path-

Example #1 (Windows):

 CL_String str = CL_PathHelp::make_relative("ABD/DEF/", "c:\user\ABD\Filename.txt", CL_PathHelp::path_type_file);
 On Windows: str = "..\Filename.txt"
static CL_String CL_PathHelp::normalize ( const CL_String path,
PathType  path_type = path_type_file 
) [static]

Normalize a path.

Parameters:
path The path to use
path_type The path type (of the normalized path)
Returns:
The converted path

Converts all slashes and backslashes into their right type. Simplifies or removes all . and .., converting the path into its most readable form.

static CL_String CL_PathHelp::remove_trailing_slash ( const CL_String path  )  [static]

Remove trailing slash or backslash from path.

This function checks if a path has a trailing slash/backslash and removes it if needed.

Parameters:
path The path to use
Returns:
The converted path
static std::vector<CL_String> CL_PathHelp::split_basepath ( const CL_String fullname,
PathType  path_type = path_type_file 
) [static]

Splits the path, excluding the location, into parts.

param: fullname = The full path name to use param: path_type = The path type

Returns:
The split path

The documentation for this class was generated from the following file: