aboutsummaryrefslogtreecommitdiff
path: root/src/armnnUtils/Filesystem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/armnnUtils/Filesystem.cpp')
-rw-r--r--src/armnnUtils/Filesystem.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/armnnUtils/Filesystem.cpp b/src/armnnUtils/Filesystem.cpp
index d917e508d5..1577d2d07c 100644
--- a/src/armnnUtils/Filesystem.cpp
+++ b/src/armnnUtils/Filesystem.cpp
@@ -5,6 +5,7 @@
#if !defined(ARMNN_DISABLE_FILESYSTEM)
#include <armnnUtils/Filesystem.hpp>
+#include "armnn/Exceptions.hpp"
namespace armnnUtils
{
@@ -32,6 +33,45 @@ fs::path NamedTempFile(const char* fileName)
return namedTempFile;
}
+/**
+ * @brief Construct a temporary directory
+ *
+ * Given a specified directory name construct a path in the
+ * system temporary directory. If the directory already exists, it is deleted,
+ * otherwise create it. This could throw filesystem_error exceptions.
+ *
+ * @param path is the path required in the temporary directory.
+ * @return path consisting of system temporary directory.
+ */
+std::string CreateDirectory(std::string path)
+{
+ fs::path tmpDir = fs::temp_directory_path();
+ mode_t permissions = 0733;
+ int result = 0;
+
+ std::string full_path = tmpDir.generic_string() + path;
+ if (fs::exists(full_path))
+ {
+ fs::remove_all(full_path);
+ }
+
+#if defined(_WIN32)
+ result = _mkdir(full_path.c_str()); // can be used on Windows
+ armnn::ConditionalThrow<armnn::RuntimeException>((result == 0), "Was unable to create temporary directory");
+#else
+ result = mkdir(full_path.c_str(), permissions);
+ armnn::ConditionalThrow<armnn::RuntimeException>((result == 0), "Was unable to create temporary directory");
+#endif
+
+ return full_path + "/";
+}
+
+FileContents ReadFileContentsIntoString(const std::string path) {
+ std::ifstream input_file(path);
+ armnn::ConditionalThrow<armnn::RuntimeException>((input_file.is_open()), "Could not read file contents");
+ return FileContents((std::istreambuf_iterator<char>(input_file)), std::istreambuf_iterator<char>());
+}
+
} // namespace armnnUtils
} // namespace Filesystem