mirror of
https://github.com/Team-Neptune/DeepSea-Updater.git
synced 2024-11-23 12:29:52 +00:00
make more consistent. add get files in a dir.
This commit is contained in:
parent
d8277f8e9e
commit
caca85ca11
@ -23,6 +23,7 @@
|
|||||||
#include <switch.h>
|
#include <switch.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <filesystem>
|
||||||
|
|
||||||
#include "FileManager.hpp"
|
#include "FileManager.hpp"
|
||||||
|
|
||||||
@ -30,18 +31,19 @@
|
|||||||
|
|
||||||
using namespace simpleIniParser;
|
using namespace simpleIniParser;
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
namespace fs = std::filesystem;
|
||||||
|
|
||||||
namespace ku
|
namespace dsu
|
||||||
{
|
{
|
||||||
std::vector<char> FileManager::readFile(std::string path)
|
vector<char> FileManager::readFile(string path)
|
||||||
{
|
{
|
||||||
std::ifstream file;
|
ifstream file;
|
||||||
file.open(path, std::ios::in | std::ios::binary | std::ios::ate);
|
file.open(path, ios::in | ios::binary | ios::ate);
|
||||||
|
|
||||||
auto size = file.tellg();
|
auto size = file.tellg();
|
||||||
file.seekg(0, std::ios::beg);
|
file.seekg(0, ios::beg);
|
||||||
|
|
||||||
std::vector<char> buffer(size);
|
vector<char> buffer(size);
|
||||||
file.read(buffer.data(), size);
|
file.read(buffer.data(), size);
|
||||||
file.close();
|
file.close();
|
||||||
|
|
||||||
@ -69,7 +71,7 @@ namespace ku
|
|||||||
|
|
||||||
bool FileManager::deleteFile(string filename)
|
bool FileManager::deleteFile(string filename)
|
||||||
{
|
{
|
||||||
if (fileExists(filename))
|
if (fs::exists(filename))
|
||||||
{
|
{
|
||||||
return remove(filename.c_str()) == 0;
|
return remove(filename.c_str()) == 0;
|
||||||
}
|
}
|
||||||
@ -79,19 +81,47 @@ namespace ku
|
|||||||
|
|
||||||
bool FileManager::fileExists(string filename)
|
bool FileManager::fileExists(string filename)
|
||||||
{
|
{
|
||||||
FILE *file = fopen(filename.c_str(), "r");
|
if(fs::exists(filename)) return true;
|
||||||
|
|
||||||
if (file)
|
|
||||||
{
|
|
||||||
fflush(file);
|
|
||||||
fsync(fileno(file));
|
|
||||||
fclose(file);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vector<string> FileManager::getExistingFiles(string path)
|
||||||
|
{
|
||||||
|
DIR *dir;
|
||||||
|
vector<string> files;
|
||||||
|
|
||||||
|
// First check if the dir even exists.
|
||||||
|
if(fs::exists(path))
|
||||||
|
{
|
||||||
|
// Then make sure it's actually a directory, and not a file. All before
|
||||||
|
// iterating all of the files in the directory.
|
||||||
|
dir = opendir(path.c_str());
|
||||||
|
if(dir != NULL)
|
||||||
|
{
|
||||||
|
for (const auto & ft : fs::directory_iterator(path))
|
||||||
|
{
|
||||||
|
string file;
|
||||||
|
string ext = ft.path().extension().string();
|
||||||
|
string fname = ft.path().filename().string();;
|
||||||
|
string fextname = ext + fname;
|
||||||
|
|
||||||
|
if(ext == "")
|
||||||
|
{
|
||||||
|
file = fname;
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
file = fextname;
|
||||||
|
}
|
||||||
|
files.push_back(file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
closedir(dir);
|
||||||
|
|
||||||
|
return files;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// http://stackoverflow.com/a/11366985
|
// http://stackoverflow.com/a/11366985
|
||||||
bool FileManager::createSubfolder(string path)
|
bool FileManager::createSubfolder(string path)
|
||||||
{
|
{
|
||||||
@ -367,4 +397,4 @@ namespace ku
|
|||||||
unzCloseCurrentFile(unz);
|
unzCloseCurrentFile(unz);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
} // namespace ku
|
} // namespace dsu
|
||||||
|
@ -21,13 +21,14 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
namespace ku {
|
namespace dsu {
|
||||||
class FileManager {
|
class FileManager {
|
||||||
public:
|
public:
|
||||||
static std::vector<char> readFile(std::string path);
|
static std::vector<char> readFile(std::string path);
|
||||||
static bool writeFile(std::string filename, std::string data);
|
static bool writeFile(std::string filename, std::string data);
|
||||||
static bool deleteFile(std::string filename);
|
static bool deleteFile(std::string filename);
|
||||||
static bool fileExists(std::string filename);
|
static bool fileExists(std::string filename);
|
||||||
|
static std::vector<std::string> getExistingFiles(std::string path);
|
||||||
static bool createSubfolder(std::string path);
|
static bool createSubfolder(std::string path);
|
||||||
static bool extract(std::string filename, std::string destination);
|
static bool extract(std::string filename, std::string destination);
|
||||||
static void cleanUpFiles();
|
static void cleanUpFiles();
|
||||||
|
Loading…
Reference in New Issue
Block a user