blob: d917e508d54660b58bf8d5ecfdb41d9b4fab62d0 [file] [log] [blame]
Laurent Carlier749294b2020-06-01 09:03:17 +01001//
Jim Flynn6da6a452020-07-14 14:26:27 +01002// Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
Rob Hughesbdee4262020-01-07 17:05:24 +00003// SPDX-License-Identifier: MIT
4//
Jim Flynn870b96c2022-03-25 21:24:56 +00005#if !defined(ARMNN_DISABLE_FILESYSTEM)
Rob Hughesbdee4262020-01-07 17:05:24 +00006
Rob Hughes9542f902021-07-14 09:48:54 +01007#include <armnnUtils/Filesystem.hpp>
Rob Hughesbdee4262020-01-07 17:05:24 +00008
Rob Hughesbdee4262020-01-07 17:05:24 +00009namespace armnnUtils
10{
11namespace Filesystem
12{
13
Francis Murtagh532a29d2020-06-29 11:50:01 +010014/**
15 * @brief Construct a temporary file name.
16 *
17 * Given a specified file name construct a path to that file in the
18 * system temporary directory. If the file already exists it is deleted. This
19 * could throw filesystem_error exceptions.
20 *
21 * @param fileName the file name required in the temporary directory.
22 * @return path consisting of system temporary directory and file name.
23 */
24fs::path NamedTempFile(const char* fileName)
Rob Hughesbdee4262020-01-07 17:05:24 +000025{
Francis Murtagh532a29d2020-06-29 11:50:01 +010026 fs::path tmpDir = fs::temp_directory_path();
27 fs::path namedTempFile{tmpDir / fileName};
28 if (fs::exists(namedTempFile))
Rob Hughesbdee4262020-01-07 17:05:24 +000029 {
Francis Murtagh532a29d2020-06-29 11:50:01 +010030 fs::remove(namedTempFile);
Rob Hughesbdee4262020-01-07 17:05:24 +000031 }
Francis Murtagh532a29d2020-06-29 11:50:01 +010032 return namedTempFile;
Rob Hughesbdee4262020-01-07 17:05:24 +000033}
34
Jim Flynn870b96c2022-03-25 21:24:56 +000035} // namespace armnnUtils
36} // namespace Filesystem
37
38#endif // !defined(ARMNN_DISABLE_FILESYSTEM)