blob: 6c8175b2024795d94819958e400dd15874fceb01 [file] [log] [blame]
Rob Hughesbdee4262020-01-07 17:05:24 +00001//
2// Copyright © 2020 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#include "Filesystem.hpp"
7
8#if defined(__unix__)
9#include <sys/stat.h>
10#include <stdio.h>
11#elif defined(_MSC_VER)
12#define WIN32_LEAN_AND_MEAN
13#include <Windows.h>
14#endif
15
16namespace armnnUtils
17{
18namespace Filesystem
19{
20
David Monahana0d18962020-01-24 09:13:33 +000021long long GetFileSize(const char* path)
Rob Hughesbdee4262020-01-07 17:05:24 +000022{
David Monahana0d18962020-01-24 09:13:33 +000023#if defined(__ANDROID__)
Rob Hughesbdee4262020-01-07 17:05:24 +000024 struct stat statusBuffer;
25 if (stat(path, & statusBuffer) != 0)
26 {
27 return -1;
28 }
29 return statusBuffer.st_size;
David Monahana0d18962020-01-24 09:13:33 +000030#elif defined(__unix__)
31 struct stat statusBuffer;
32 if (stat(path, & statusBuffer) != 0)
33 {
34 return -1;
35 }
36 return static_cast<long long>(statusBuffer.st_size);
Rob Hughesbdee4262020-01-07 17:05:24 +000037#elif defined(_MSC_VER)
38 WIN32_FILE_ATTRIBUTE_DATA attr;
39 if (::GetFileAttributesEx(path, GetFileExInfoStandard, &attr) == 0)
40 {
41 return -1;
42 }
43 return attr.nFileSizeLow;
44#endif
45}
46
47bool Remove(const char* path)
48{
49#if defined(__unix__)
50 return remove(path) == 0;
51#elif defined(_MSC_VER)
52 return ::DeleteFile(path);
53#endif
54}
55
56}
57}