// copy_file.cxx #include "dataset_util/copy_file.h" #include "dataset_util/FileStatus.h" #include "dataset_util/ssystem.h" #include using std::string; int copy_file(string infile, string outfile, bool overwrite) { int sstat; if ( infile.size() == 0 ) return 1; if ( outfile.size() == 0 ) return 2; if ( ! FileStatus(infile).exists() ) return 3; if ( FileStatus(outfile).exists() ) { if ( ! overwrite ) return 4; if ( FileStatus(outfile).is_directory() ) return 5; if ( ! FileStatus(outfile).is_regular() ) return 6; int ustat = unlink(outfile.c_str()); if ( ustat ) return 7; } sstat = ssystem("cp " + infile + " " + outfile); if ( sstat ) return 8; return 0; }