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