C语言——操作文件夹和文件
文件夹——_mkdir()
1 #include <stdio.h> 2 #include <io.h> 3 #include <direct.h> 4 5 /** 6 * int _access(const char *path,int mode); 7 * int _waccess(const wchar_t *path,int mode); 8 * path: 文件路径 字符型字符串||宽字符型字符串 9 * mode: 0 检查文件是否存在 10 * 1 检查文件是否可运行 11 * 2 检查文件是否可写 12 * 4 检查文件是否可读 13 * 6 检查文件是否可读&&可写 14 * return: 是:0 否:-1 15 */ 16 /** 17 * int _mkdir(char const* _Path); 18 * _Path: 文件路径 字符型字符串 19 * return: 成功:0 失败:-1 20 */ 21 22 /// <summary> 23 /// 创建文件夹 24 /// </summary> 25 /// <param name="filePath"></文件夹目录> 26 /// <param name="dirName"></文件夹名称> 27 /// <returns></0成功 || -1错误> 28 int makeDir(const char* filePath, const char* dirName) 29 { 30 char overallName[40] = { 0 }; 31 int mkDirReturn = 0; 32 //字符串拼接 33 sprintf_s(overallName, "%s%s", filePath, dirName); 34 if (_access_s(overallName, 0)) 35 { 36 mkDirReturn = _mkdir(overallName); 37 } 38 return mkDirReturn; 39 }
文件——fopen_s()
1 #include <stdio.h> 2 3 /** 4 * errno_t fopen_s( FILE** _Stream, char const* _FileName, char const* _Mode); 5 * _Stream: 文件描述符的指针的指针 6 * _FileName: 文件名(应包含文件路径) 7 * _Mode: 打开模式 8 * errno_t: 成功:0 失败:-1 9 * 10 * _Mode: 11 * 字符 含义 12 "r" 只读 13 "w" 覆盖写(可创建文件) 14 "a" 追加写、读(可创建文件) 15 "r+" 创建或读 16 "w+" 创建或覆盖写(可创建文件) 17 "a+" 创建或追加写、读(可创建文件) 18 "b" 二进制文件(用法:wb、rb、W+b) 19 有些文件数据中含有文件结束符(未到文件结尾),使用二进制形式打开就可以正常读到文件结尾 20 */ 21 22 /// <summary> 23 /// 创建文件 24 /// </summary> 25 /// <param name="filePath"></文件路径> 26 /// <param name="fileNmme"></文件名> 27 /// <param name="mode"></打开文件模式> 28 /// <returns></0成功 || -1错误> 29 FILE* makeFile(const char* filePath, const char* fileNmme, const char* mode) 30 { 31 FILE* fp; 32 char overallName[40] = { 0 }; 33 sprintf_s(overallName, "%s%s", filePath, fileNmme); 34 //fopen是用户态文件IO,open是内核态文件IO; 35 //open离系统内核更近(更低级)fopen可移植性更好; 36 //fopen_s是安全性更高的fopen. 37 fopen_s(&fp, overallName, mode); 38 //fp非空 39 if (fp) 40 { 41 fclose(fp); 42 } 43 return fp; 44 }
注:使用时形参列表、fclose()、sprintf_s()等可以灵活改动