VC怎么在指定路径中生成配置文件?

badlyForPapers 2014-02-28 12:43:55
是这样的,我要做一个ftp下载,然后把文件从ftp上下载到某个路径,同时需要额外生成一个配置文件,这一步把我卡到了。
我的思路是:弄一个下载按钮,点击下载按钮,出现对话框,就可以选择下载到的路径(或者说某个文件中),这样就可以把文件从ftp上下载到选择的这个路径了,但是还需要在这个路径同时生成一个文件名一样后缀不一样的配置文件,这一步卡到我了,我不会生成配置文件,我连文件都不会生成,有人可以帮帮我吗?谢谢了,新手,也没什么分,我把50分全部给你们吧,不知道会不会被无视?谢谢大家。
要是有源代码就好了,找遍了网上都没有,谢谢,帮帮我吧。
...全文
160 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
badlyForPapers 2014-02-28
  • 打赏
  • 举报
回复
引用 2 楼 starytx 的回复:
无非就是创建和写入文件了 。示例代码
	ofstream outFile(file_path,ios::out);  // file_path是文件路径
	if (outFile)
	{
		CString str;
		outFile.write(str.GetBuffer() ,str.GetLength());
		outFile.close();
	}
思路是创建一个配置文件,然后在文件中写东西,但是之前没有做过,所以无从下手,希望有个代码让我熟练下,还是非常感谢
badlyForPapers 2014-02-28
  • 打赏
  • 举报
回复
引用 1 楼 xiaohuh421 的回复:
使用API CreateFile可以. 使用库 fopen 也可以. 使用CFile类也可以. 百度搜索: fopen 创建文件 或者: CFile 创建文件 或者 CreateFile 创建文件
谢谢回答,我会去熟练这几个函数,只是我现在比较急,所以。。。还是非常感谢,以后我会多多练习的。
badlyForPapers 2014-02-28
  • 打赏
  • 举报
回复
引用 5 楼 greatchina01 的回复:
TCHAR pszPath[MAX_PATH];  
BROWSEINFO bi;   
bi.hwndOwner      = this->GetSafeHwnd();  
bi.pidlRoot       = NULL;  
bi.pszDisplayName = NULL;   
bi.lpszTitle      = TEXT("请选择文件夹");   
bi.ulFlags        =  BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS;  
bi.lpfn           = NULL;   
bi.lParam         = 0;  
bi.iImage         = 0;   

LPITEMIDLIST pidl = SHBrowseForFolder(&bi);  
if (pidl == NULL)  
{  
	return;  
}  

if (SHGetPathFromIDListW(pidl, pszPath))  
{
	CString strPath = pszPath;
	if(strPath.Right(1) != _T("\\"))
	{
		str += _T("\\");
	}
	CString strIniFile = str + _T("conf.ini"); // 配置文件名
	CFile iniFile;
	if(!myfile.Open(strPath.GetString(), CFile::modeWrite))//写文件
	{
		return;
	}

	CString strYourData = _T("你想写入的数据");
	iniFile.Write(strYourData.GetString(), strYourData.GetLength());

	iniFile.Close();

}
实在是太感动了,首先谢谢你抽出时间回复我,还给我这么详细的答案,上午我浪费了一上午时间没有成果,我会去测试你给我的代码,希望能够成功,非常感谢。
greatchina01 2014-02-28
  • 打赏
  • 举报
回复
TCHAR pszPath[MAX_PATH];  
BROWSEINFO bi;   
bi.hwndOwner      = this->GetSafeHwnd();  
bi.pidlRoot       = NULL;  
bi.pszDisplayName = NULL;   
bi.lpszTitle      = TEXT("请选择文件夹");   
bi.ulFlags        =  BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS;  
bi.lpfn           = NULL;   
bi.lParam         = 0;  
bi.iImage         = 0;   

LPITEMIDLIST pidl = SHBrowseForFolder(&bi);  
if (pidl == NULL)  
{  
	return;  
}  

if (SHGetPathFromIDListW(pidl, pszPath))  
{
	CString strPath = pszPath;
	if(strPath.Right(1) != _T("\\"))
	{
		str += _T("\\");
	}
	CString strIniFile = str + _T("conf.ini"); // 配置文件名
	CFile iniFile;
	if(!myfile.Open(strPath.GetString(), CFile::modeWrite))//写文件
	{
		return;
	}

	CString strYourData = _T("你想写入的数据");
	iniFile.Write(strYourData.GetString(), strYourData.GetLength());

	iniFile.Close();

}
赵4老师 2014-02-28
  • 打赏
  • 举报
回复
必要时要创建文件夹。
buyong 2014-02-28
  • 打赏
  • 举报
回复
1.获得文件名和扩展名 GetModuleFileName 2.拼成新的配置文件名 CString += ... 3.创建配置文件 CFile ('文件名',。。。)
starytx 2014-02-28
  • 打赏
  • 举报
回复
无非就是创建和写入文件了 。示例代码
	ofstream outFile(file_path,ios::out);  // file_path是文件路径
	if (outFile)
	{
		CString str;
		outFile.write(str.GetBuffer() ,str.GetLength());
		outFile.close();
	}
xiaohuh421 2014-02-28
  • 打赏
  • 举报
回复
使用API CreateFile可以. 使用库 fopen 也可以. 使用CFile类也可以. 百度搜索: fopen 创建文件 或者: CFile 创建文件 或者 CreateFile 创建文件

64,652

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧