SDXFrameWork  0.13
SDXFrameWork
 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 }
ディレクトリの作成、ディレクトリ内のファイルの列挙関数郡.
Definition: Directory.h:23
static std::vector< std::string > GetFileName(const char *ディレクトリ名)
ディレクトリ内のファイル名/ディレクトリ名を取得する.
Definition: Directory.h:27
static bool MakeDirectory(const char *ディレクトリ名)
ディレクトリを作成する.
Definition: Directory.h:72