• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //  filesystem/string_file.hpp  --------------------------------------------------------//
2 
3 //  Copyright Beman Dawes 2015
4 
5 //  Distributed under the Boost Software License, Version 1.0.
6 //  See http://www.boost.org/LICENSE_1_0.txt
7 
8 //  Library home page: http://www.boost.org/libs/filesystem
9 
10 #ifndef BOOST_FILESYSTEM_STRING_FILE_HPP
11 #define BOOST_FILESYSTEM_STRING_FILE_HPP
12 
13 #include <string>
14 #include <boost/filesystem/fstream.hpp>
15 #include <boost/filesystem/operations.hpp>
16 
17 namespace boost
18 {
19 namespace filesystem
20 {
21 inline
save_string_file(const path & p,const std::string & str)22 void save_string_file(const path& p, const std::string& str)
23 {
24   filesystem::ofstream file;
25   file.exceptions(std::ofstream::failbit | std::ofstream::badbit);
26   file.open(p, std::ios_base::binary);
27   file.write(str.c_str(), str.size());
28 }
29 
30 inline
load_string_file(const path & p,std::string & str)31 void load_string_file(const path& p, std::string& str)
32 {
33   filesystem::ifstream file;
34   file.exceptions(std::ifstream::failbit | std::ifstream::badbit);
35   file.open(p, std::ios_base::binary);
36   std::size_t sz = static_cast<std::size_t>(filesystem::file_size(p));
37   str.resize(sz, '\0');
38   file.read(&str[0], sz);
39 }
40 }  // namespace filesystem
41 }  // namespace boost
42 
43 #endif  // include guard
44