Пример #1
0
std::string get_directory_listing( boost::string_view folder ) {
	namespace fs = boost::filesystem;
	fs::path p { folder.to_string( ) };
	std::ostringstream ss;
	try {
		if( exists( p ) ) {
			if( fs::is_regular_file( p ) ) {
				ss <<p <<" size is " <<fs::file_size( p ) <<"\r\n";
			} else if( fs::is_directory( p ) ) {
				ss <<p <<" is a directory containing:\n";
				std::copy( fs::directory_iterator( p ), fs::directory_iterator( ), std::ostream_iterator<fs::directory_entry>( ss, "\r\n" ) );
			} else {
				ss <<p <<" exists, but is neither a regular file nor a directory\n";
			}
		} else {
			ss <<p <<" does not exist\n";
		}
	}

	catch( const fs::filesystem_error& ex ) {
		ss <<"ERROR: " <<ex.what( ) <<'\n';
	}

	return ss.str( );
}