From 27474060e1287a67c45cd790d29b9095b35b2bdf Mon Sep 17 00:00:00 2001 From: ShizZy Date: Thu, 29 Aug 2013 23:35:09 -0400 Subject: adding initial project layout --- src/common/src/file_utils.h | 90 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 src/common/src/file_utils.h (limited to 'src/common/src/file_utils.h') diff --git a/src/common/src/file_utils.h b/src/common/src/file_utils.h new file mode 100644 index 00000000..6b93710b --- /dev/null +++ b/src/common/src/file_utils.h @@ -0,0 +1,90 @@ +/** +* Copyright (C) 2005-2013 Gekko Emulator +* +* @file file_utils.h +* @author ShizZy +* @date 2013-01-27 +* @brief Crossplatform file utility functions +* @remark Borrowed from Dolphin Emulator +* +* @section LICENSE +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License as +* published by the Free Software Foundation; either version 2 of +* the License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, but +* WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* General Public License for more details at +* http://www.gnu.org/copyleft/gpl.html +* +* Official project repository can be found at: +* http://code.google.com/p/gekko-gc-emu/ +*/ + +#ifndef COMMON_FILE_UTILS_H_ +#define COMMON_FILE_UTILS_H_ + +#include +#include +#include +#include +#include + +#include "common.h" + +namespace common { + +// Returns true if file filename exists +bool FileExists(const std::string &filename); + +// Returns true if filename is a directory +bool IsDirectory(const std::string &filename); + +// Returns the size of filename (64bit) +u64 GetFileSize(const std::string &filename); + +// Overloaded GetSize, accepts file descriptor +u64 GetFileSize(const int fd); + +// Overloaded GetSize, accepts FILE* +u64 GetFileSize(FILE *f); + +// Returns true if successful, or path already exists. +bool CreateDir(const std::string &filename); + +// Creates the full path of fullPath returns true on success +bool CreateFullPath(const std::string &fullPath); + +// Deletes a given filename, return true on success +// Doesn't supports deleting a directory +bool DeleteFile(const std::string &filename); + +// Deletes a directory filename, returns true on success +bool DeleteDir(const std::string &filename); + +// renames file srcFilename to destFilename, returns true on success +bool RenameFile(const std::string &srcFilename, const std::string &destFilename); + +// copies file srcFilename to destFilename, returns true on success +bool CopyFile(const std::string &srcFilename, const std::string &destFilename); + +// creates an empty file filename, returns true on success +bool CreateEmptyFile(const std::string &filename); + +// deletes the given directory and anything under it. Returns true on success. +bool DeleteDirRecursively(const std::string &directory); + +// Returns the current directory +std::string GetCurrentDir(); + +// Set the current directory to given directory +bool SetCurrentDir(const std::string &directory); + +bool WriteStringToFile(bool text_file, const std::string &str, const char *filename); +bool ReadFileToString(bool text_file, const char *filename, std::string &str); + +} // namespace + +#endif // COMMON_FILE_UTILS_H_ -- cgit v1.2.3