diff options
Diffstat (limited to 'src/boost/libs/filesystem/example/tut4.cpp')
-rw-r--r-- | src/boost/libs/filesystem/example/tut4.cpp | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/boost/libs/filesystem/example/tut4.cpp b/src/boost/libs/filesystem/example/tut4.cpp new file mode 100644 index 00000000..513a5e62 --- /dev/null +++ b/src/boost/libs/filesystem/example/tut4.cpp @@ -0,0 +1,61 @@ +// filesystem tut4.cpp ---------------------------------------------------------------// + +// Copyright Beman Dawes 2009 + +// Distributed under the Boost Software License, Version 1.0. +// See http://www.boost.org/LICENSE_1_0.txt + +// Library home page: http://www.boost.org/libs/filesystem + +#include <iostream> +#include <vector> +#include <algorithm> +#include <boost/filesystem.hpp> +using std::cout; +using namespace boost::filesystem; + +int main(int argc, char* argv[]) +{ + if (argc < 2) + { + cout << "Usage: tut4 path\n"; + return 1; + } + + path p (argv[1]); + + try + { + if (exists(p)) + { + if (is_regular_file(p)) + cout << p << " size is " << file_size(p) << '\n'; + + else if (is_directory(p)) + { + cout << p << " is a directory containing:\n"; + + std::vector<path> v; + + for (auto&& x : directory_iterator(p)) + v.push_back(x.path()); + + std::sort(v.begin(), v.end()); + + for (auto&& x : v) + cout << " " << x.filename() << '\n'; + } + else + cout << p << " exists, but is not a regular file or directory\n"; + } + else + cout << p << " does not exist\n"; + } + + catch (const filesystem_error& ex) + { + cout << ex.what() << '\n'; + } + + return 0; +} |