summaryrefslogtreecommitdiffstats
path: root/mmc_updater/src/DirIterator.h
diff options
context:
space:
mode:
authorAndrew <forkk@forkk.net>2013-12-09 12:04:05 -0600
committerAndrew <forkk@forkk.net>2013-12-09 12:04:05 -0600
commit7f52bed9e3f559adcbcf3f3c1c7ac2251964db8c (patch)
tree52097b57dc7d18ec4e35ef3a8e554af2d91545e8 /mmc_updater/src/DirIterator.h
parent9410dd042ea62224fa3e0eb3b525abbdf0c316ee (diff)
parent220e07aef4a34dca9f31ae0c5bb994e5c594125d (diff)
downloadMultiMC-7f52bed9e3f559adcbcf3f3c1c7ac2251964db8c.tar
MultiMC-7f52bed9e3f559adcbcf3f3c1c7ac2251964db8c.tar.gz
MultiMC-7f52bed9e3f559adcbcf3f3c1c7ac2251964db8c.tar.lz
MultiMC-7f52bed9e3f559adcbcf3f3c1c7ac2251964db8c.tar.xz
MultiMC-7f52bed9e3f559adcbcf3f3c1c7ac2251964db8c.zip
Merge branch 'feature_updater' into develop
Diffstat (limited to 'mmc_updater/src/DirIterator.h')
-rw-r--r--mmc_updater/src/DirIterator.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/mmc_updater/src/DirIterator.h b/mmc_updater/src/DirIterator.h
new file mode 100644
index 00000000..f3fbb955
--- /dev/null
+++ b/mmc_updater/src/DirIterator.h
@@ -0,0 +1,43 @@
+#pragma once
+
+#include "Platform.h"
+
+#include <string>
+
+#ifdef PLATFORM_UNIX
+#include <dirent.h>
+#endif
+
+/** Simple class for iterating over the files in a directory
+ * and reporting their names and types.
+ */
+class DirIterator
+{
+ public:
+ DirIterator(const char* path);
+ ~DirIterator();
+
+ // iterate to the next entry in the directory
+ bool next();
+
+ // methods to return information about
+ // the current entry
+ std::string fileName() const;
+ std::string filePath() const;
+ bool isDir() const;
+
+ private:
+ std::string m_path;
+
+#ifdef PLATFORM_UNIX
+ DIR* m_dir;
+ dirent* m_entry;
+#endif
+
+#ifdef PLATFORM_WINDOWS
+ HANDLE m_findHandle;
+ WIN32_FIND_DATA m_findData;
+ bool m_firstEntry;
+#endif
+};
+