blob: 783e985fd64f6f621cd3bb8b59e8836360b7597b [file] [log] [blame]
/*
* Copyright 2016 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef SkOSPath_DEFINED
#define SkOSPath_DEFINED
#include "include/core/SkString.h"
/**
* Functions for modifying SkStrings which represent paths on the filesystem.
*/
class SkOSPath {
public:
#ifdef _WIN32
static constexpr char SEPARATOR = '\\';
#else
static constexpr char SEPARATOR = '/';
#endif
/**
* Assembles rootPath and relativePath into a single path, like this:
* rootPath/relativePath.
* It is okay to call with a NULL rootPath and/or relativePath. A path
* separator will still be inserted.
*
* Uses SkPATH_SEPARATOR, to work on all platforms.
*/
static SkString Join(const char* rootPath, const char* relativePath);
/**
* Return the name of the file, ignoring the directory structure.
* Behaves like python's os.path.basename. If the fullPath is
* /dir/subdir/, an empty string is returned.
* @param fullPath Full path to the file.
* @return SkString The basename of the file - anything beyond the
* final slash, or the full name if there is no slash.
*/
static SkString Basename(const char* fullPath);
/**
* Given a qualified file name returns the directory.
* Behaves like python's os.path.dirname. If the fullPath is
* /dir/subdir/ the return will be /dir/subdir/
* @param fullPath Full path to the file.
* @return SkString The dir containing the file - anything preceding the
* final slash, or the full name if ending in a slash.
*/
static SkString Dirname(const char* fullPath);
};
#endif