aboutsummaryrefslogtreecommitdiffstats
path: root/src/core/function/FileOperator.cpp
diff options
context:
space:
mode:
authorSaturneric <[email protected]>2022-02-06 05:29:01 +0000
committerSaturneric <[email protected]>2022-02-06 05:29:01 +0000
commita2d75efab5dca4e9a9721afef61cad0f62d4825f (patch)
treee2d9647e68d7ef9f47cfe3e6b3100ef8aed076f8 /src/core/function/FileOperator.cpp
parent<chore>(project, ci): Make the Windows platform pass the compilation (diff)
downloadGpgFrontend-a2d75efab5dca4e9a9721afef61cad0f62d4825f.tar.gz
GpgFrontend-a2d75efab5dca4e9a9721afef61cad0f62d4825f.zip
<refactor>(core, ui): Adjust the core code directory structure.
Diffstat (limited to 'src/core/function/FileOperator.cpp')
-rw-r--r--src/core/function/FileOperator.cpp67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/core/function/FileOperator.cpp b/src/core/function/FileOperator.cpp
new file mode 100644
index 00000000..e721fc7e
--- /dev/null
+++ b/src/core/function/FileOperator.cpp
@@ -0,0 +1,67 @@
+/**
+* Copyright (C) 2021 Saturneric
+*
+* This file is part of GpgFrontend.
+*
+* GpgFrontend is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* GpgFrontend is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with GpgFrontend. If not, see <https://www.gnu.org/licenses/>.
+*
+* The initial version of the source code is inherited from
+* the gpg4usb project, which is under GPL-3.0-or-later.
+*
+* All the source code of GpgFrontend was modified and released by
+* Saturneric<[email protected]> starting on May 12, 2021.
+*
+* SPDX-License-Identifier: GPL-3.0-or-later
+*
+*/
+
+#include "FileOperator.h"
+
+bool GpgFrontend::FileOperator::ReadFile(const QString& file_name,
+ QByteArray& data) {
+ QFile file(file_name);
+ if (!file.open(QIODevice::ReadOnly)) {
+ LOG(ERROR) << "failed to open file" << file_name.toStdString();
+ return false;
+ }
+ data = file.readAll();
+ file.close();
+ return true;
+}
+
+bool GpgFrontend::FileOperator::WriteFile(const QString& file_name,
+ const QByteArray& data) {
+ QFile file(file_name);
+ if (!file.open(QIODevice::WriteOnly)) {
+ LOG(ERROR) << "failed to open file" << file_name.toStdString();
+ return false;
+ }
+ file.write(data);
+ file.close();
+ return true;
+}
+
+bool GpgFrontend::FileOperator::ReadFileStd(
+ const std::filesystem::path& file_name, std::string& data) {
+ QByteArray byte_data;
+ bool res = ReadFile(QString::fromStdString(file_name.string()), byte_data);
+ data = byte_data.toStdString();
+ return res;
+}
+
+bool GpgFrontend::FileOperator::WriteFileStd(
+ const std::filesystem::path& file_name, const std::string& data) {
+ return WriteFile(QString::fromStdString(file_name.string()),
+ QByteArray::fromStdString(data));
+}