SDXFrameWork 0.13 SDXFrameWork

- Main Page
- Related Pages
- Classes

All Classes Namespaces Functions Variables Enumerations Enumerator Pages
Directory.h
1 //Copyright © 2014 SDXFramework
2 //[License]GNU Affero General Public License, version 3
3 //[Contact]http://sourceforge.jp/projects/dxframework/
4 //Qiitaのこの記事を参考にしています[http://qiita.com/episteme/items/0e3c2ee8a8c03780f01e]
5 //Qiitaの利用規約9条2項、参照の事
6
7 #pragma once
8 #include <Multimedia/SDX.h>
9
10 #ifdef __WINDOWS__
11 #include <filesystem>
12 #include <direct.h>
13 #else
14 #include <sys/types.h>
15 #include <dirent.h>
16 #endif
17
18 namespace SDX
19 {
23 class Directory
24 {
25 public:
27 static std::vector<std::string> GetFileName(const char* ディレクトリ名)
28 {
29 std::vector<std::string> nameS;
30
31 #ifdef __WINDOWS__
32 namespace sys = std::tr2::sys;
33 sys::path p(ディレクトリ名);
34
35 //std::for_each(sys::directory_iterator(p),sys::directory_iterator(),
36 std::for_each(sys::recursive_directory_iterator(p), sys::recursive_directory_iterator(),
37 [&](const sys::path& p)
38 {
39 if (sys::is_regular_file(p))
40 { // ファイルなら...
41 #if _MSC_VER > 1800 //VS2015以降
42 nameS.push_back(p.filename().string().c_str());
43 #else
44 nameS.push_back(p.filename().c_str());
45 #endif
46 }
47 else if (sys::is_directory(p))
48 { // ディレクトリなら...
49 nameS.push_back( p.string().c_str() );
50 }
51 });
52
53 #else
54 std::string str = SDL_GetBasePath();
55 str += "/";
56 str += ディレクトリ名;
57 DIR *dir = opendir(str.c_str());
58 struct dirent *dp;
59
60 if( dir == nullptr ){return nameS;}
61
62 for (dp = readdir(dir); dp != NULL; dp = readdir(dir))
63 {
64 nameS.push_back(dp->d_name);
65 }
66 closedir(dir);
67 #endif
68 return nameS;
69 }
70
72 static bool MakeDirectory(const char* ディレクトリ名)
73 {
74 #ifdef __WINDOWS__
75 return (_mkdir(ディレクトリ名) == 0);
76 #else
77 return false;
78 #endif
79 }
80 };
81 }
SDX::Directory
ディレクトリの作成、ディレクトリ内のファイルの列挙関数郡.
Definition: Directory.h:23
SDX::Directory::GetFileName
static std::vector< std::string > GetFileName(const char *ディレクトリ名)
ディレクトリ内のファイル名/ディレクトリ名を取得する.
Definition: Directory.h:27
SDX::Directory::MakeDirectory
static bool MakeDirectory(const char *ディレクトリ名)
ディレクトリを作成する.
Definition: Directory.h:72