Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/cxong/tinydir.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCong <congusbongus@gmail.com>2021-11-21 09:43:00 +0300
committerGitHub <noreply@github.com>2021-11-21 09:43:00 +0300
commite1c3dac05914e795940f150922db8611fcfac7fd (patch)
treecc31bb164b72ffcabef0abf63eaaf244eb108d2f
parentbcb6b5c25d0564f2be71ca7d0c1cc8e5e41191fc (diff)
Update cpp_sample.cpp
-rw-r--r--samples/cpp_sample.cpp27
1 files changed, 24 insertions, 3 deletions
diff --git a/samples/cpp_sample.cpp b/samples/cpp_sample.cpp
index f8e386a..2386cf0 100644
--- a/samples/cpp_sample.cpp
+++ b/samples/cpp_sample.cpp
@@ -1,4 +1,5 @@
#include <iostream>
+#include <list>
#include <stdexcept>
#include <string>
@@ -8,7 +9,9 @@ class TinyDir {
public:
TinyDir(const std::string& path);
~TinyDir();
- std::string BaseName() const;
+ std::string baseName() const;
+ std::list<std::string> listDir(bool filesOnly) const;
+
private:
tinydir_dir* dir;
};
@@ -22,10 +25,11 @@ TinyDir::TinyDir(const std::string& path) : dir(new tinydir_dir) {
}
TinyDir::~TinyDir() {
+ tinydir_close(dir);
delete dir;
}
-std::string TinyDir::BaseName() const {
+std::string TinyDir::baseName() const {
const std::string path{dir->path};
auto lastSlash = path.find_last_of("/\\");
if (lastSlash == std::string::npos) {
@@ -34,13 +38,30 @@ std::string TinyDir::BaseName() const {
return path.substr(lastSlash + 1);
}
+std::list<std::string> TinyDir::listDir(bool filesOnly)
+{
+ std::list<std::string> files;
+
+ while (dir->has_next)
+ {
+ tinydir_file file;
+ tinydir_readfile(dir, &file);
+
+ files.push_back(std::string{dir->path} + "/" + file.name);
+
+ tinydir_next(dir);
+ }
+
+ return files;
+}
+
int main(int argc, char* argv[]) {
if (argc != 2) {
std::cerr << "Usage: cpp_sample filename\n";
return 1;
}
TinyDir td{argv[1]};
- std::cout << "Basename is " << td.BaseName() << "\n";
+ std::cout << "Basename is " << td.baseName() << "\n";
return 0;
}