-
Notifications
You must be signed in to change notification settings - Fork 0
/
filemanager.cpp
63 lines (51 loc) · 1.51 KB
/
filemanager.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include "filemanager.h"
#include <dirent.h>
#include <errno.h>
#include <cstring>
using namespace std;
size_t FileManager::find_ext_idx(const char* fileName) {
size_t len = strlen(fileName);
size_t idx = len-1;
for(size_t i = 0; *(fileName+i); i++) {
if (*(fileName+i) == '.') {
idx = i;
} else if (*(fileName + i) == '/' || *(fileName + i) == '\\') {
idx = len - 1;
}
}
return idx+1;
}
std::string FileManager::get_file_ext(const char* fileName) {
return std::string(fileName).substr(find_ext_idx(fileName));
}
FileManager::FileManager(const char* filename) {
_filesImages = std::vector<std::string>();
DIR *dp;
char* extension = "jpg";
struct dirent *dirp;
if((dp = opendir(filename)) == NULL) {
cout << "Error(" << errno << ") opening " << filename << endl;
}
while ((dirp = readdir(dp)) != NULL) {
string name = string(dirp->d_name);
if(name != "." && name != "..") {
if(extension == get_file_ext(name.c_str())) {
_filesImages.push_back("data/"+name);
} else {
_filesISO.push_back("data/"+name);
}
}
}
closedir(dp);
}
void FileManager::displayFiles() {
for (unsigned int i = 0; i < _filesImages.size(); ++i) {
cout << _filesImages[i] << endl;
}
}
std::vector<std::string> FileManager::getFilesImages() {
return _filesImages;
}
std::vector<std::string> FileManager::getFilesISOs() {
return _filesISO;
}