diff options
Diffstat (limited to 'base/file_path.h')
-rw-r--r-- | base/file_path.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/base/file_path.h b/base/file_path.h index 7106c90b..5c8f183 100644 --- a/base/file_path.h +++ b/base/file_path.h @@ -178,6 +178,18 @@ class FilePath { // and BaseName().value() on each child component. void GetComponents(std::vector<FilePath::StringType>* components) const; + // Returns true, and sets *path to resulting full path, if relative_path can + // be applied to current path by resolving any '..' it may contain. Returns + // false otherwise, e.g., if relative path is absolute, or if it climbs back + // up the hierarchy too far (i.e., beyond the root of current path). + // + // Note that if the current path ends with a file name, we won't try to + // figure it out (so this method doesn't go to the disk) and we will blindly + // append relative_path at the end of the current path, including the file + // name in the current path (if any). + bool AppendAndResolveRelative(const FilePath& relative_path, + FilePath* path) const; + // Returns true if this FilePath is a strict parent of the |child|. Absolute // and relative paths are accepted i.e. is /foo parent to /foo/bar and // is foo parent to foo/bar. Does not convert paths to absolute, follow |