]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/filesystem/example/tut4.cpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / libs / filesystem / example / tut4.cpp
CommitLineData
7c673cae
FG
1// filesystem tut4.cpp ---------------------------------------------------------------//
2
3// Copyright Beman Dawes 2009
4
5// Distributed under the Boost Software License, Version 1.0.
6// See http://www.boost.org/LICENSE_1_0.txt
7
8// Library home page: http://www.boost.org/libs/filesystem
9
10#include <iostream>
11#include <vector>
12#include <algorithm>
13#include <boost/filesystem.hpp>
14using std::cout;
15using namespace boost::filesystem;
16
17int main(int argc, char* argv[])
18{
19 if (argc < 2)
20 {
21 cout << "Usage: tut4 path\n";
22 return 1;
23 }
24
25 path p (argv[1]);
26
27 try
28 {
29 if (exists(p))
30 {
31 if (is_regular_file(p))
32 cout << p << " size is " << file_size(p) << '\n';
33
34 else if (is_directory(p))
35 {
36 cout << p << " is a directory containing:\n";
37
b32b8144 38 std::vector<path> v;
7c673cae
FG
39
40 for (auto&& x : directory_iterator(p))
b32b8144 41 v.push_back(x.path());
7c673cae
FG
42
43 std::sort(v.begin(), v.end());
44
45 for (auto&& x : v)
b32b8144 46 cout << " " << x.filename() << '\n';
7c673cae
FG
47 }
48 else
49 cout << p << " exists, but is not a regular file or directory\n";
50 }
51 else
52 cout << p << " does not exist\n";
53 }
54
55 catch (const filesystem_error& ex)
56 {
57 cout << ex.what() << '\n';
58 }
59
60 return 0;
61}