#ifndef PQFILEUTILS_H
#define PQFILEUTILS_H

#include <QJsonObject>

namespace PQ {

/// 直接写入文件，没有会新建，覆盖写入，但是文件目录不存在则不新建
bool writeAbsoluteFile(const QString & absFilePath, const QByteArray & data);


/// 直接读取文件内容到 byte array，文件不存在或者错误，都返回空
QByteArray readAbsoluteFile(const QString & absFilePath);

/// 缓存文件函数封装
class CacheFile
{
public:
     /// 直接写入缓存目录里 文件 的 内容，覆盖写入
    static bool writeFile(const QString & name, const QByteArray & data);

    /// 直接读取缓存目录里 文件 的 内容
    static QByteArray readFile(const QString & name);
    /// 获取APP缓存文件绝对路径， {AppPath.cachePath + name}
    static QString cacheFile(const QString & name);
};

class ConfigFile
{
public:
    /// 直接写入配置目录里 文件 的 内容，覆盖写入
    static bool writeFile(const QString & name, const QByteArray & data);
    /// 直接读取配置目录里 文件 的 内容
    static QByteArray readFile(const QString & name);
    /// 获取APP缓存文件绝对路径， {AppPath.configPath + name}
    static QString configFile(const QString & name);
    /// 直接写入 json object
    static bool writeObject(const QString & name, const QJsonObject & obj);
    /// 直接读取 json object
    static QJsonObject readObject(const QString & name);
};

}

#endif // FILEUTILS_H
