贡献者: addis
为了使用方便 SLISC 提供了一些常见的文件读相关功能,例如创建和删除文件/文件夹,获取文件列表(可以包括所有子目录的文件),获取某个拓展名的文件列表等等。这些函数对 Windows 和 Linux 系统都兼容。
Bool file_exist(Str_I fname, Bool_I case_sens = true) 判断指定文件是否存在
Bool dir_exist(Str_I path) 判断路径是否存在
Long file_size(Str_I fname) 获取文件大小(字节数),fname 是文件名。
Str path2dir(Str_I fname) 从 “路径+文件” 字符串中提取 “路径” 部分
void mkdir(Str_I path) 创建路径
void rmdir(Str_I path) 删除路径
void ensure_dir(Str_I dir_or_file) 如果路径不存在,创建该路径(可以任意多层)
void file_list(vecStr_O fnames, Str_I path, Bool_I append = false) 列出指定路径中所有文件,append = true 则 fnames 原有的元素不被清空。
void file_list_full(vecStr_O fnames, Str_I path, Bool_I append = false) 和 file_list() 相同,只是文件名包含路径。
void folder_list(vecStr_O folders, Str_I path, Bool_I append = false) 列出指定路径中所有文件夹
void folder_list_full(vecStr_O folders, Str_I path, Bool_I append = false) 和 folder_list() 相同,但包含路径。
void file_list_r(vecStr_O fnames, Str_I path, Bool_I append = false) 列出指定路径中所有文件,包括所有子文件夹中的。
void file_ext(vecStr_O fnames_ext, vecStr_I fnames, Str_I ext, Bool_I keep_ext = true, Bool_I append = false) 在文件列表中选出所有具有某个拓展名的文件
void file_list_ext(vecStr_O fnames, Str_I path, Str_I ext, Bool_I keep_ext = true, Bool_I append = false) 在某个路径中寻找所有具有某个拓展名的文件
void file_copy(Str_I fname_out, Str_I fname_in, Bool_I replace = false) 复制文件 replace 用于替换目标的同名文件,否则会一直提示,需要手动删除程序才能继续。
void file_copy(Str_I fname_out, Str_I fname_in, Str_IO buffer, Bool_I replace = false) 用户提供缓存 buffer 的 file_copy,提高速度。
void file_move(Str_I fname_out, Str_I fname_in, Bool_I replace = false) 移动文件。
void file_move(Str_I fname_out, Str_I fname_in, Str_IO buffer, Bool_I replace = false) 带用户缓存的版本。
void open_bin(ofstream &fout, Str_I fname) 打开二进制文件写入
void open_bin(ifstream &fin, Str_I fname) 打开二进制文件读取
void write(const Char *data, Long_I Nbyte, Str_I fname) 把字符串写入二进制文件
Long read(Char *data, Long_I Nbyte, Str_I fname) 读取二进制文件到字符串,返回实际上读取到的字节数。
void write(Str_I str, Str_I fname) 把字符串写入二进制文件
void write_vec_str(vecStr_I vec_str, Str_I fname) 把每个字符串写入文件中的一列
void read_vec_str(vecStr_O vec_str, Str_I fname)
void read(Str_O str, Str_I fname) 读取二进制文件到字符串
void write(ofstream &fout, Char_I s) 把一个 Char 写入二进制文件,也可以是 Int, Llong, Doub, Comp,Str。
void read(ifstream &fin, Char_I s) 和 write 同理。
void read(CmatInt_O mat, Str_I file, Long_I skip_lines = 0) 从一个文件中读取密矩阵,矩阵会被 .resize 成需要的形状。CmatInt 也可以是 CmatLlong 或 CmatDoub
void read(VecDoub_O v, Str_I file, Long_I skip_lines = 0) 从文件中读取单列矢量。
void last_modified(Str_O yymmddhhmmss, Str_I fname) 获取文件的最后修改时间。
void set_buff(ofstream &fout, Str_IO buffer) 缓存越大,速度越快。
Bool little_endian() 操作系统是否是 little_endian 的。
void change_endian(Char *data, Long_I elm_size, Long_I Nelm) 把一个字符串中每个长度为 elm_size 的单元前后翻折。
 
 
 
 
 
 
 
 
 
 
 
友情链接: 超理论坛 | ©小时科技 保留一切权利