﻿//
// 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 GetFileSize(const char* path)
{
#if defined(__unix__)
    struct stat statusBuffer;
    if (stat(path, & statusBuffer) != 0)
    {
        return -1;
    }
    return 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
}

}
}
