}
+bool
+dcp::filesystem::exists(boost::filesystem::path const& path, boost::system::error_code& ec)
+{
+ return boost::filesystem::exists(dcp::filesystem::fix_long_path(path), ec);
+}
+
+
+bool
+dcp::filesystem::is_directory(boost::filesystem::path const& path)
+{
+ return boost::filesystem::is_directory(dcp::filesystem::fix_long_path(path));
+}
+
+
+bool
+dcp::filesystem::is_empty(boost::filesystem::path const& path)
+{
+ return boost::filesystem::is_empty(dcp::filesystem::fix_long_path(path));
+}
+
+
bool
dcp::filesystem::is_regular_file(boost::filesystem::path const& path)
{
}
+bool
+dcp::filesystem::create_directory(boost::filesystem::path const& path, boost::system::error_code& ec)
+{
+ return boost::filesystem::create_directory(dcp::filesystem::fix_long_path(path), ec);
+}
+
+
void
dcp::filesystem::copy(boost::filesystem::path const& from, boost::filesystem::path const& to)
{
}
+void
+dcp::filesystem::copy_file(boost::filesystem::path const& from, boost::filesystem::path const& to, boost::system::error_code& ec)
+{
+ boost::filesystem::copy_file(dcp::filesystem::fix_long_path(from), dcp::filesystem::fix_long_path(to), ec);
+}
+
+
+void
+dcp::filesystem::copy_file(boost::filesystem::path const& from, boost::filesystem::path const& to, boost::filesystem::copy_option option)
+{
+ boost::filesystem::copy_file(dcp::filesystem::fix_long_path(from), dcp::filesystem::fix_long_path(to), option);
+}
+
+
bool
dcp::filesystem::create_directories(boost::filesystem::path const& path)
{
}
+bool
+dcp::filesystem::create_directories(boost::filesystem::path const& path, boost::system::error_code& ec)
+{
+ return boost::filesystem::create_directories(dcp::filesystem::fix_long_path(path), ec);
+}
+
+
boost::filesystem::path
dcp::filesystem::absolute(boost::filesystem::path const& path)
{
}
+boost::filesystem::path
+dcp::filesystem::weakly_canonical(boost::filesystem::path const& path)
+{
+ return dcp::filesystem::unfix_long_path(boost::filesystem::weakly_canonical(dcp::filesystem::fix_long_path(path)));
+}
+
+
+bool
+dcp::filesystem::remove(boost::filesystem::path const& path)
+{
+ return boost::filesystem::remove(dcp::filesystem::fix_long_path(path));
+}
+
+
+bool
+dcp::filesystem::remove(boost::filesystem::path const& path, boost::system::error_code& ec)
+{
+ return boost::filesystem::remove(dcp::filesystem::fix_long_path(path), ec);
+}
+
+
uintmax_t
dcp::filesystem::remove_all(boost::filesystem::path const& path)
{
}
+uintmax_t
+dcp::filesystem::remove_all(boost::filesystem::path const& path, boost::system::error_code& ec)
+{
+ return boost::filesystem::remove_all(dcp::filesystem::fix_long_path(path), ec);
+}
+
+
uintmax_t
dcp::filesystem::file_size(boost::filesystem::path const& path)
{
}
+uintmax_t
+dcp::filesystem::file_size(boost::filesystem::path const& path, boost::system::error_code& ec)
+{
+ return boost::filesystem::file_size(dcp::filesystem::fix_long_path(path), ec);
+}
+
+
boost::filesystem::path
dcp::filesystem::current_path()
{
}
+void
+dcp::filesystem::create_hard_link(boost::filesystem::path const& from, boost::filesystem::path const& to, boost::system::error_code& ec)
+{
+ boost::filesystem::create_hard_link(dcp::filesystem::fix_long_path(from), dcp::filesystem::fix_long_path(to), ec);
+}
+
+
+void
+dcp::filesystem::create_symlink(boost::filesystem::path const& from, boost::filesystem::path const& to, boost::system::error_code& ec)
+{
+ boost::filesystem::create_symlink(dcp::filesystem::fix_long_path(from), dcp::filesystem::fix_long_path(to), ec);
+}
+
+
+std::string
+dcp::filesystem::extension(boost::filesystem::path const& path)
+{
+ return boost::filesystem::extension(dcp::filesystem::fix_long_path(path));
+}
+
+
+boost::filesystem::space_info
+dcp::filesystem::space(boost::filesystem::path const& path)
+{
+ return boost::filesystem::space(dcp::filesystem::fix_long_path(path));
+}
+
+
+std::time_t
+dcp::filesystem::last_write_time(boost::filesystem::path const& path)
+{
+ return boost::filesystem::last_write_time(dcp::filesystem::fix_long_path(path));
+}
+
+
+std::time_t
+dcp::filesystem::last_write_time(boost::filesystem::path const& path, boost::system::error_code& ec)
+{
+ return boost::filesystem::last_write_time(dcp::filesystem::fix_long_path(path), ec);
+}
+
+
+uintmax_t
+dcp::filesystem::hard_link_count(boost::filesystem::path const& path)
+{
+ return boost::filesystem::hard_link_count(dcp::filesystem::fix_long_path(path));
+}
+
+
+void
+dcp::filesystem::rename(boost::filesystem::path const& old_path, boost::filesystem::path const& new_path)
+{
+ boost::filesystem::rename(dcp::filesystem::fix_long_path(old_path), dcp::filesystem::fix_long_path(new_path));
+}
+
+
+void
+dcp::filesystem::rename(boost::filesystem::path const& old_path, boost::filesystem::path const& new_path, boost::system::error_code& ec)
+{
+ boost::filesystem::rename(dcp::filesystem::fix_long_path(old_path), dcp::filesystem::fix_long_path(new_path), ec);
+}
+
+
+/* We don't really need this but let's add it for completeness */
+boost::filesystem::path
+dcp::filesystem::change_extension(boost::filesystem::path const& path, std::string const& new_extension)
+{
+ return boost::filesystem::change_extension(path, new_extension);
+}
+
+
#ifdef DCPOMATIC_WINDOWS
dcp::filesystem::directory_iterator::directory_iterator(boost::filesystem::path const& path)
}
+dcp::filesystem::directory_iterator::directory_iterator(boost::filesystem::path const& path, boost::system::error_code& ec)
+ : _wrapped(dcp::filesystem::fix_long_path(path), ec)
+{
+
+}
+
+
boost::filesystem::path
dcp::filesystem::directory_entry::path() const
{
}
+dcp::filesystem::directory_iterator::directory_iterator(boost::filesystem::path const& path, boost::system::error_code& ec)
+ : _wrapped(path, ec)
+{
+
+}
+
+
boost::filesystem::path
dcp::filesystem::directory_entry::path() const
{
dcp::filesystem::directory_entry
dcp::filesystem::directory_iterator::operator*() const
{
- return dcp::filesystem::directory_entry(*_wrapped);
+ _entry = dcp::filesystem::directory_entry(*_wrapped);
+ return _entry;
}
+dcp::filesystem::directory_entry*
+dcp::filesystem::directory_iterator::operator->() const
+{
+ _entry = dcp::filesystem::directory_entry(_wrapped->path());
+ return &_entry;
+}
+
bool
dcp::filesystem::directory_iterator::operator!=(dcp::filesystem::directory_iterator const& other) const
{
boost::filesystem::path absolute(boost::filesystem::path const& path);
boost::filesystem::path canonical(boost::filesystem::path const& path);
+boost::filesystem::path weakly_canonical(boost::filesystem::path const& path);
+boost::filesystem::path change_extension(boost::filesystem::path const& from, std::string const& new_extension);
void copy(boost::filesystem::path const& from, boost::filesystem::path const& to);
void copy_file(boost::filesystem::path const& from, boost::filesystem::path const& to);
+void copy_file(boost::filesystem::path const& from, boost::filesystem::path const& to, boost::system::error_code& ec);
+void copy_file(boost::filesystem::path const& from, boost::filesystem::path const& to, boost::filesystem::copy_option ec);
bool create_directory(boost::filesystem::path const& path);
+bool create_directory(boost::filesystem::path const& path, boost::system::error_code& ec);
bool create_directories(boost::filesystem::path const& path);
+bool create_directories(boost::filesystem::path const& path, boost::system::error_code& ec);
void create_hard_link(boost::filesystem::path const& from, boost::filesystem::path const& to);
+void create_hard_link(boost::filesystem::path const& from, boost::filesystem::path const& to, boost::system::error_code& ec);
+void create_symlink(boost::filesystem::path const& from, boost::filesystem::path const& to, boost::system::error_code& ec);
void current_path(boost::filesystem::path const& path);
boost::filesystem::path current_path();
bool exists(boost::filesystem::path const& path);
+bool exists(boost::filesystem::path const& path, boost::system::error_code& ec);
+std::string extension(boost::filesystem::path const& path);
+bool is_directory(boost::filesystem::path const& path);
+bool is_empty(boost::filesystem::path const& path);
bool is_regular_file(boost::filesystem::path const& path);
uintmax_t file_size(boost::filesystem::path const& path);
+uintmax_t file_size(boost::filesystem::path const& path, boost::system::error_code& ec);
+uintmax_t hard_link_count(boost::filesystem::path const& path);
+std::time_t last_write_time(boost::filesystem::path const& path);
+std::time_t last_write_time(boost::filesystem::path const& path, boost::system::error_code& ec);
+bool remove(boost::filesystem::path const& path);
+bool remove(boost::filesystem::path const& path, boost::system::error_code& ec);
uintmax_t remove_all(boost::filesystem::path const& path);
+uintmax_t remove_all(boost::filesystem::path const& path, boost::system::error_code& ec);
+void rename(boost::filesystem::path const& old_path, boost::filesystem::path const& new_path);
+void rename(boost::filesystem::path const& old_path, boost::filesystem::path const& new_path, boost::system::error_code& ec);
+boost::filesystem::space_info space(boost::filesystem::path const& path);
class directory_entry
public:
directory_iterator() = default;
directory_iterator(boost::filesystem::path const& path);
+ directory_iterator(boost::filesystem::path const& path, boost::system::error_code& ec);
directory_iterator& operator++();
directory_entry operator*() const;
+ directory_entry* operator->() const;
bool operator!=(directory_iterator const& other) const;
private:
boost::filesystem::directory_iterator _wrapped;
+ mutable directory_entry _entry;
};