10 #include <boost/filesystem/operations.hpp>
11 #include <boost/filesystem/exception.hpp>
12 #include <boost/lexical_cast.hpp>
15 #include <Wt/WDateTime.h>
16 #include <Wt/WIconPair.h>
17 #include <Wt/WLocalDateTime.h>
18 #include <Wt/WStringUtil.h>
23 #if BOOST_FILESYSTEM_VERSION < 3
30 label()->setTextFormat(TextFormat::Plain);
32 if (boost::filesystem::exists(path)) {
33 if (!boost::filesystem::is_directory(path)) {
34 int fsize = (int)boost::filesystem::file_size(path);
35 setColumnWidget(1, cpp14::make_unique<WText>(
asString(fsize)));
36 columnWidget(1)->setStyleClass(
"fsize");
40 std::time_t t = boost::filesystem::last_write_time(path);
45 setColumnWidget(2, cpp14::make_unique<WText>(dateTimeStr));
46 columnWidget(2)->setStyleClass(
"date");
52 if (boost::filesystem::exists(path)
53 && boost::filesystem::is_directory(path))
54 return cpp14::make_unique<WIconPair>(
"icons/yellow-folder-closed.png",
55 "icons/yellow-folder-open.png",
false);
57 return cpp14::make_unique<WIconPair>(
"icons/document.png",
58 "icons/yellow-folder-open.png",
false);
63 if (boost::filesystem::is_directory(
path_)) {
64 std::set<boost::filesystem::path> paths;
65 boost::filesystem::directory_iterator end_itr;
67 for (boost::filesystem::directory_iterator i(
path_); i != end_itr; ++i)
70 }
catch (boost::filesystem::filesystem_error& e) {
71 std::cerr << e.what() << std::endl;
74 for (std::set<boost::filesystem::path>::iterator i = paths.begin();
75 i != paths.end(); ++i)
78 }
catch (boost::filesystem::filesystem_error& e) {
79 std::cerr << e.what() << std::endl;
87 return boost::filesystem::is_directory(
path_);
89 return WTreeTableNode::expandable();