peerplays-fc/include/fc/filesystem.hpp

75 lines
2 KiB
C++
Raw Normal View History

2012-09-08 06:41:28 +00:00
#ifndef _FC_FILESYSTEM_HPP_
#define _FC_FILESYSTEM_HPP_
2012-09-08 21:37:25 +00:00
#include <fc/string.hpp>
#include <fc/fwd.hpp>
namespace boost {
namespace filesystem {
class path;
2012-10-10 01:40:29 +00:00
class directory_iterator;
2012-09-08 21:37:25 +00:00
}
}
2012-09-08 06:41:28 +00:00
namespace fc {
2012-09-08 21:37:25 +00:00
class path {
public:
path();
~path();
path( const boost::filesystem::path& );
path( const fc::string& p );
2012-09-09 03:46:19 +00:00
path( const char* );
2012-09-08 21:37:25 +00:00
path( const path& p );
path( path&& p );
path& operator =( const path& );
path& operator =( path&& );
path& operator /=( const fc::path& );
friend path operator /( const fc::path& p, const fc::path& );
2012-09-14 04:56:20 +00:00
friend bool operator ==( const fc::path& p, const fc::path& );
friend bool operator !=( const fc::path& p, const fc::path& );
2012-09-08 21:37:25 +00:00
operator boost::filesystem::path& ();
operator const boost::filesystem::path& ()const;
2012-10-10 01:40:29 +00:00
fc::path stem()const;
fc::path extension()const;
2012-09-14 04:56:20 +00:00
fc::path filename()const;
2012-10-10 01:40:29 +00:00
fc::path parent_path()const;
2012-09-08 21:37:25 +00:00
fc::string string()const;
2012-11-08 14:44:27 +00:00
fc::string generic_string()const;
2012-09-08 21:37:25 +00:00
private:
fwd<boost::filesystem::path,8> _p;
};
2012-10-10 01:40:29 +00:00
class directory_iterator {
public:
directory_iterator( const fc::path& p );
directory_iterator();
~directory_iterator();
fc::path operator*()const;
directory_iterator& operator++(int);
directory_iterator& operator++();
friend bool operator==( const directory_iterator&, const directory_iterator& );
friend bool operator!=( const directory_iterator&, const directory_iterator& );
private:
fwd<boost::filesystem::directory_iterator,16> _p;
2012-10-10 01:40:29 +00:00
};
2012-09-14 04:56:20 +00:00
bool exists( const path& p );
bool is_directory( const path& p );
2012-10-10 01:40:29 +00:00
bool is_regular_file( const path& p );
2012-09-14 04:56:20 +00:00
void create_directories( const path& p );
2012-11-12 03:04:24 +00:00
path canonical( const path& p );
2012-09-14 04:56:20 +00:00
uint64_t file_size( const path& p );
2012-11-15 16:55:36 +00:00
bool remove( const path& p );
void copy( const path& from, const path& to );
path unique_path();
path temp_directory_path();
2012-09-08 06:41:28 +00:00
}
#endif // _FC_FILESYSTEM_HPP_