判断文件夹是否存在,不存在则创建,并新建一个txt

WIN32_FIND_DATA fileFind;  //数据结构,作为获取和更改文件属性的手段
HANDLE hFirstFile;
CString strFolder = _T("CAM");  //指定的文件夹
CString strCurrentDir, strForeDir;//当前目录,上一级目录
int flagFind = 0;
CString strdir;
TCHAR buf[MAX_PATH];  //定义一个TCHAR型数组,数组名buf,数组大小MAX_PATH
int nIndex;

memset(buf, 0, MAX_PATH);  //对一段内存空间buf全部设置为0,即初始化数组
GetCurrentDirectory(MAX_PATH, buf);  //返回当前进程的当前目录
strCurrentDir.Format(_T("%s"), buf);  //当前目录格式化
strForeDir = strCurrentDir; //
nIndex = strForeDir.ReverseFind('\\'); //从字符串strForeDir结尾开始检索'\\' 返回索引号                                                 
strForeDir.Delete(nIndex + 1, strForeDir.GetLength() - nIndex - 1);   //删除的起始位置,要删除的字符数
strdir = strForeDir + _T("*");  //一个有效的目录
hFirstFile = FindFirstFile(strdir, &fileFind);  //根据目录查找第一个文件,&fileFind存放找到的文件的信息,返回找到文件的句柄

do {
	CString strText;
	strText.Format(_T("%s"), fileFind.cFileName);
	if (strText == strFolder)  //CAM文件夹存在
	{
		flagFind = 1; 
		AfxMessageBox(strForeDir + strFolder + ":The folder is exist.");
	}
} while (FindNextFile(hFirstFile, &fileFind));  

if (flagFind == 0)
{
	if (!CreateDirectory(strForeDir + strFolder, NULL)) //创建文件目录
	{
		AfxMessageBox(_T("Create folder error!"));
		return;
	}
	SetCurrentDirectory(strForeDir + strFolder);//设置当前路径
	CFile file; 
	char str[] = "if you want show someting in the program you should add some txt file in to current folder ";
	file.Open(_T("readme.txt"), CFile::modeCreate | CFile::modeWrite, NULL);  //创建txt文件
	file.Write(str, strlen(str));  //写文件
	file.Close();
}

相关函数eg:
CString str1,str2;
str1 = _T(“abcdefg123456”);
str1.Delete(0,7);//0表示起始位置,7表示要删除的字符数 此时 str1 = _T(“123456”);

CString s( “abcabc” );
ASSERT( s.ReverseFind( ‘b’ ) == 4 );//从末端开始查找指定字符,返回索引值

函数原型 :
HANDLE FindFirstFile( LPCTSTR lpFileName, LPWIN32_FIND_DATA lpFindFileData );
参数:
lpFileName:[输入] 指向字符串的指针用于指定一个有效的目录。
lpFindFileData:[输出] 指向一个WIN32_FIND_DATA的指针,用于存放找到文件或目录的信息。
返回值:
如果成功,则返回找到文件或目录的句柄。在FindNextFile和FindClose函数中会用到此句柄。
如果失败,返回INVALID_HANDLE_VALUE。要获得更多的信息调用GetLastError函数。
备注:
指定目录的形式应该为"…//abc//." 就是在abc目录中找第一个文件或目录。

你可能感兴趣的:(C++)