mirror of
https://gitee.com/vnotex/vnote.git
synced 2025-07-05 13:59:52 +08:00
84 lines
2.7 KiB
C++
84 lines
2.7 KiB
C++
#ifndef FILEUTILS_H
|
|
#define FILEUTILS_H
|
|
|
|
#include <QByteArray>
|
|
#include <QString>
|
|
#include <QImage>
|
|
#include <QPixmap>
|
|
#include <QJsonObject>
|
|
|
|
class QTemporaryFile;
|
|
|
|
namespace vnotex
|
|
{
|
|
class FileUtils
|
|
{
|
|
public:
|
|
FileUtils() = delete;
|
|
|
|
static QByteArray readFile(const QString &p_filePath);
|
|
|
|
static QString readTextFile(const QString &p_filePath);
|
|
|
|
static QJsonObject readJsonFile(const QString &p_filePath);
|
|
|
|
static void writeFile(const QString &p_filePath, const QByteArray &p_data);
|
|
|
|
static void writeFile(const QString &p_filePath, const QString &p_text);
|
|
|
|
static void writeFile(const QString &p_filePath, const QJsonObject &p_jobj);
|
|
|
|
// Rename file or dir.
|
|
static void renameFile(const QString &p_path, const QString &p_name);
|
|
|
|
static bool childExistsCaseInsensitive(const QString &p_dirPath, const QString &p_name);
|
|
|
|
static bool existsCaseInsensitive(const QString &p_path);
|
|
|
|
static void copyFile(const QString &p_filePath,
|
|
const QString &p_destPath,
|
|
bool p_move = false);
|
|
|
|
static void copyDir(const QString &p_dirPath,
|
|
const QString &p_destPath,
|
|
bool p_move = false);
|
|
|
|
static void removeFile(const QString &p_filePath);
|
|
|
|
// Return false if it is not deleted due to non-empty.
|
|
static bool removeDirIfEmpty(const QString &p_dirPath);
|
|
|
|
static void removeDir(const QString &p_dirPath);
|
|
|
|
static QString renameIfExistsCaseInsensitive(const QString &p_path);
|
|
|
|
static bool isPlatformNameCaseSensitive();
|
|
|
|
static bool isText(const QString &p_filePath);
|
|
|
|
static bool isImage(const QString &p_filePath);
|
|
|
|
static QImage imageFromFile(const QString &p_filePath);
|
|
|
|
static QPixmap pixmapFromFile(const QString &p_filePath);
|
|
|
|
static QString generateUniqueFileName(const QString &p_folderPath,
|
|
const QString &p_hints,
|
|
const QString &p_suffix);
|
|
|
|
static QString generateRandomFileName(const QString &p_hints, const QString &p_suffix);
|
|
|
|
static QString generateFileNameWithSequence(const QString &p_folderPath,
|
|
const QString &p_baseName,
|
|
const QString &p_suffix = QString());
|
|
|
|
static QTemporaryFile *createTemporaryFile(const QString &p_suffix);
|
|
|
|
// Go through @p_dirPath recursively and delete all empty dirs.
|
|
// @p_dirPath itself is not deleted.
|
|
static void removeEmptyDir(const QString &p_dirPath);
|
|
};
|
|
} // ns vnotex
|
|
|
|
#endif // FILEUTILS_H
|