#pragma once #include #include #include #include #include #include namespace Incart::Common { class FileProxy { public: static bool readFile(const QString& filePath, QByteArray& data) { QFile file(filePath); if (!file.open(QIODevice::ReadOnly)) { return false; } data = file.readAll(); file.close(); return true; } static bool writeFile(const QString& filePath, QByteArray& data) { QFile file(filePath); if (!file.open(QIODevice::WriteOnly)) { return false; } qint64 len = file.write(data); file.close(); return (len == data.size()); } static bool readJsonMapFromFile(const QString& filePath, QVariantMap& dataMap) { QVariantMap jsonMap; QByteArray data; if (!readFile(filePath, data)) { return false; } QJsonDocument jsonDocument = QJsonDocument::fromJson(data); if (!jsonDocument.isObject()) { return false; } QJsonObject jsonObject = jsonDocument.object(); dataMap = jsonObject.toVariantMap(); return true; } static bool writeJsonMapToFile(const QString& filePath, const QVariantMap& jsonMap) { QJsonObject jobj = QJsonObject::fromVariantMap(jsonMap); QJsonDocument jdoc(jobj); QByteArray data = jdoc.toJson(QJsonDocument::Indented); // QJsonDocument::Compact return writeFile(filePath, data); } static bool isFileExist(const QString& filePath) { QFileInfo file(filePath); return file.exists() && file.isFile(); } }; } // namespace Incart::Common