8 #ifndef TREELITE_DETAIL_FILE_UTILS_H_
9 #define TREELITE_DETAIL_FILE_UTILS_H_
21 auto path = std::filesystem::weakly_canonical(filepath);
22 TREELITE_CHECK(std::filesystem::exists(path)) <<
"Path " << filepath <<
" does not exist";
23 std::ifstream ifs(path, std::ios::in | std::ios::binary);
25 ifs.exceptions(std::ios::badbit);
41 auto path = std::filesystem::weakly_canonical(filepath);
42 TREELITE_CHECK(path.has_filename()) <<
"Cannot write to a directory; please specify a file";
44 <<
"Path " << path.parent_path() <<
" does not exist";
45 std::ofstream ofs(path, std::ios::out | std::ios::binary);
47 ofs.exceptions(std::ios::failbit | std::ios::badbit);
60 auto path = std::filesystem::weakly_canonical(filepath);
61 TREELITE_CHECK(std::filesystem::exists(path)) <<
"Path " << filepath <<
" does not exist";
64 fp = _wfopen(path.wstring().c_str(), L
"rb");
66 fp = std::fopen(path.string().c_str(),
"rb");
logging facility for Treelite
#define TREELITE_CHECK(x)
Definition: logging.h:70
Definition: file_utils.h:18
std::ifstream OpenFileForReadAsStream(std::filesystem::path const &filepath)
Definition: file_utils.h:20
FILE * OpenFileForReadAsFilePtr(std::filesystem::path const &filepath)
Definition: file_utils.h:59
std::ofstream OpenFileForWriteAsStream(std::filesystem::path const &filepath)
Definition: file_utils.h:40