mirror of
https://gitee.com/vnotex/vnote.git
synced 2025-07-05 22:09:52 +08:00
85 lines
2.5 KiB
C++
85 lines
2.5 KiB
C++
#ifndef PATHUTILS_H
|
|
#define PATHUTILS_H
|
|
|
|
#include <QString>
|
|
#include <QDir>
|
|
#include <QUrl>
|
|
|
|
namespace vnotex
|
|
{
|
|
class PathUtils
|
|
{
|
|
public:
|
|
PathUtils() = delete;
|
|
|
|
static QString cleanPath(const QString &p_path)
|
|
{
|
|
return QDir::cleanPath(p_path);
|
|
}
|
|
|
|
// See testParentDirPath().
|
|
static QString parentDirPath(const QString &p_path);
|
|
|
|
// Return @p_path if it is a dir. Otherwise, return its parent dir.
|
|
static QString dirOrParentDirPath(const QString &p_path);
|
|
|
|
// Whether @p_path is a dir.
|
|
static bool isDir(const QString &p_path);
|
|
|
|
// Whether @p_folderPath is an empty directory.
|
|
static bool isEmptyDir(const QString &p_path);
|
|
|
|
// Concatenate @p_dirPath and @p_name.
|
|
static QString concatenateFilePath(const QString &p_dirPath, const QString &p_name);
|
|
|
|
// Get dir name of @p_path directory.
|
|
static QString dirName(const QString &p_path);
|
|
|
|
// Get file name of @p_path file/directory.
|
|
static QString fileName(const QString &p_path);
|
|
|
|
static QString fileNameCheap(const QString &p_path);
|
|
|
|
static QString absolutePath(const QString &p_path)
|
|
{
|
|
return QDir(p_path).absolutePath();
|
|
}
|
|
|
|
// Normalize @p_path for comparision.
|
|
static QString normalizePath(const QString &p_path);
|
|
|
|
// Whether two paths point to the same file/directory.
|
|
static bool areSamePaths(const QString &p_a, const QString &p_b);
|
|
|
|
// Whether @p_dir contains @p_path.
|
|
static bool pathContains(const QString &p_dir, const QString &p_path);
|
|
|
|
static bool isLegalFileName(const QString &p_name);
|
|
|
|
static bool isLegalPath(const QString &p_path);
|
|
|
|
// Return relative path of @p_path to @p_dir.
|
|
static QString relativePath(const QString &p_dir, const QString &p_path);
|
|
|
|
static QUrl pathToUrl(const QString &p_path);
|
|
|
|
static QString urlToPath(const QUrl &p_url);
|
|
|
|
static QString encodeSpacesInPath(const QString &p_path);
|
|
|
|
static void prependDotIfRelative(QString &p_path);
|
|
|
|
static QString removeUrlParameters(const QString &p_url);
|
|
|
|
static bool isImageUrl(const QString &p_url);
|
|
|
|
static bool isLocalFile(const QString &p_path);
|
|
|
|
// Regular expression string for file/folder name.
|
|
// Forbidden chars: \/:*?"<>| and whitespaces except spaces.
|
|
static const QString c_fileNameRegularExpression;
|
|
};
|
|
} // ns vnotex
|
|
|
|
#endif // PATHUTILS_H
|