| // |
| // Copyright © 2020 Arm Ltd. All rights reserved. |
| // SPDX-License-Identifier: MIT |
| // |
| |
| #include "Filesystem.hpp" |
| |
| #if defined(__unix__) |
| #include <sys/stat.h> |
| #include <stdio.h> |
| #elif defined(_MSC_VER) |
| #define WIN32_LEAN_AND_MEAN |
| #include <Windows.h> |
| #endif |
| |
| namespace armnnUtils |
| { |
| namespace Filesystem |
| { |
| |
| long long GetFileSize(const char* path) |
| { |
| #if defined(__ANDROID__) |
| struct stat statusBuffer; |
| if (stat(path, & statusBuffer) != 0) |
| { |
| return -1; |
| } |
| return statusBuffer.st_size; |
| #elif defined(__unix__) |
| struct stat statusBuffer; |
| if (stat(path, & statusBuffer) != 0) |
| { |
| return -1; |
| } |
| return static_cast<long long>(statusBuffer.st_size); |
| #elif defined(_MSC_VER) |
| WIN32_FILE_ATTRIBUTE_DATA attr; |
| if (::GetFileAttributesEx(path, GetFileExInfoStandard, &attr) == 0) |
| { |
| return -1; |
| } |
| return attr.nFileSizeLow; |
| #endif |
| } |
| |
| bool Remove(const char* path) |
| { |
| #if defined(__unix__) |
| return remove(path) == 0; |
| #elif defined(_MSC_VER) |
| return ::DeleteFile(path); |
| #endif |
| } |
| |
| } |
| } |