summaryrefslogtreecommitdiff
path: root/graphs/cpp/directories_infos/main_example.cc
blob: db4bfa08bac2838d31a378c120f150a475313583 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <fstream>
#include <iomanip>
#include <iostream>

#include "directory_info.hh"
#include "read_info.hh"

int main(int argc, char** argv)
{
    if (argc < 2)
        return 1;

    auto file = std::ifstream(argv[1]);

    DirectoryInfo dir_info;

    while ((dir_info = read_info(file)).is_valid())
    {
        std::stringstream str_stream;
        str_stream << dir_info.get_name() << ' ' << dir_info.get_size() << ' '
                   << std::oct << dir_info.get_rights() << std::dec << ' '
                   << dir_info.get_owner() << '\n';

        dir_info = read_info(str_stream);
        if (!dir_info.is_valid())
            break;

        std::cout << dir_info.get_name() << '|' << dir_info.get_size() << '|'
                  << std::oct << dir_info.get_rights() << std::dec << '|'
                  << dir_info.get_owner() << '\n';
    }
}