pqfileutils.cpp 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #include "pqfileutils.h"
  2. #include <QFile>
  3. #include "core/pqapppath.h"
  4. #include <QJsonDocument>
  5. namespace PQ {
  6. bool writeAbsoluteFile(const QString & absFilePath, const QByteArray & data)
  7. {
  8. QFile f(absFilePath);
  9. if(f.open(QFile::WriteOnly)){
  10. f.write(data);
  11. f.close();
  12. return true;
  13. }
  14. return false;
  15. }
  16. QByteArray readAbsoluteFile(const QString & absFilePath)
  17. {
  18. QByteArray dt;
  19. QFile f(absFilePath);
  20. if(f.open(QFile::ReadOnly)){
  21. dt = f.readAll();
  22. f.close();
  23. }
  24. return dt;
  25. }
  26. bool CacheFile::writeFile(const QString & name, const QByteArray & data)
  27. {
  28. return writeAbsoluteFile(cacheFile(name),data);
  29. }
  30. QByteArray CacheFile::readFile(const QString & name)
  31. {
  32. return readAbsoluteFile(cacheFile(name));
  33. }
  34. QString CacheFile::cacheFile(const QString & name)
  35. {
  36. return AppPath::this_()->cacheDir().absoluteFilePath(name);
  37. }
  38. bool ConfigFile::writeFile(const QString & name, const QByteArray & data)
  39. {
  40. return writeAbsoluteFile(configFile(name),data);
  41. }
  42. QByteArray ConfigFile::readFile(const QString & name)
  43. {
  44. return readAbsoluteFile(configFile(name));
  45. }
  46. QString ConfigFile::configFile(const QString & name)
  47. {
  48. return AppPath::this_()->configDir().absoluteFilePath(name);
  49. }
  50. bool ConfigFile::writeObject(const QString & name, const QJsonObject & obj)
  51. {
  52. auto dt = QJsonDocument(obj).toJson();
  53. return writeFile(name,dt);
  54. }
  55. QJsonObject ConfigFile::readObject(const QString & name)
  56. {
  57. auto dt = readFile(name);
  58. return QJsonDocument::fromJson(dt).object();
  59. }
  60. }