Colderleo's blog Colderleo's blog
首页
Linux
C++
Python
前端
工具软件
mysql
索引
关于
GitHub (opens new window)

Colder Leo

热爱代码的打工人
首页
Linux
C++
Python
前端
工具软件
mysql
索引
关于
GitHub (opens new window)
  • Windows
gaoliu
2021-10-06

写文件自动创建文件夹目录--CStdioFile

1、mfc用CStdioFile写文件时,如果目录不存在,CStdioFile.Open会打开失败,返回值为0。
此时代码应添加if和else,便于调试。否在会出现错误中断等许多麻烦。如下:
if(CStdioFile.Open)
{
写文件;
File.Close();//close语句如果写在if外面会报错。
}
else
//提示打开文件失败;

2、写文件时如果文件目录不存在,可以自动创建目录,例程如下:
//创建mfc对话框工程,将下面的程序添加到dlg.cpp中的OnInitDialog()函数中
// TODO: 在此添加额外的初始化代码
	CStdioFile File;//txt文件
	CString strFileName,strTemp1;//用于txt存储的文件名

	//创建路径
	CString m_FilePath;
	m_FilePath="C:\\数据\\";
	if(!PathIsDirectory(m_FilePath))
			CreateDirectory(m_FilePath,NULL);
	m_FilePath=m_FilePath+"环境数据2\\";
	if(!PathIsDirectory(m_FilePath))
			CreateDirectory(m_FilePath,NULL);
	m_FilePath=m_FilePath+"2017-01-06\\";
	if(!PathIsDirectory(m_FilePath))
			CreateDirectory(m_FilePath,NULL);
	
	
	strFileName=m_FilePath+"tt.txt";
	//strFileName="C\数据\环境数据2\2017-01-06tt.txt";//此句可导致弹窗。因为单斜杠\是转义符
	if(File.Open(strFileName,CFile::modeCreate|CFile::modeWrite))
	{
		CString m_strData="wht";
		File.WriteString(m_strData);
		File.Close();
	}
	else
	{
		MessageBox("文件写入失败");//提示代码,此处可考虑非弹窗类型的提示
	}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
编辑 (opens new window)
上次更新: 2021/10/11, 12:43:58
最近更新
01
通过模板实现结构体成员拷贝-按成员名匹配
05-07
02
c++17通过模板获取类成员的个数
05-01
03
avx-sse切换惩罚
04-30
更多文章>
Theme by Vdoing | Copyright © 2019-2023 Colder Leo | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×