【求解】如何用VC在指定路径生成配置文件,并写入一些配置信息的问题
先说下昨天发了个帖子。
我的问题就是:我要做一个ftp下载,然后把文件从ftp上下载到某个路径,同时需要额外生成一个配置文件,这一步把我卡到了。
我的思路是:弄一个下载按钮,点击下载按钮,出现对话框,就可以选择下载到的路径(或者说某个文件中),这样就可以把文件从ftp上下载到选择的这个路径了,但是还需要在这个路径同时生成一个文件名一样后缀不一样的配置文件,这一步卡到我了,我不会生成配置文件,我连文件都不会生成。
地址是:http://bbs.csdn.net/topics/390719197
后来有几个好心的网友给了我回复,非常感动,表示感谢,根据网友的建议,我改编了一个网友的代码,能够生成配置文件了,并在配置文件中输入了名字和年龄两个信息,但是运行程序之后,生成的配置文件里有时候有内容,有时候没有内容,绝大多数情况运行之后配置文件里面是空的,让我非常崩溃,可以帮我看下问题吗?谢谢,只有40分了,前面的帖子给了五十分,分很少,希望大家不要嫌弃,在此谢谢了,你们的每一个回答都会给我启发,谢谢。
我的代码如下:
void CMy11Dlg::CreateIniFile1()
{
// TODO: Add your control notification handler code here
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;
}
//把路径存储在pszPath中
if (SHGetPathFromIDList(pidl, pszPath)) //pszPath是接收路径的。
{
CString strPath = pszPath;
if(strPath.Right(1) != _T("\\"))//Right(n)从右边起取n个字符。
{
strPath+= _T("\\");
}
CString strIniFile = strPath + _T("conf.ini"); // 需要创建的配置文件名(包括各级路径)
//创建配置文件
HANDLE hFile;
// hFile=CreateFile(strIniFile,GENERIC_READ|GENERIC_WRITE,0,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL);
hFile=::CreateFile(strIniFile,GENERIC_WRITE,0,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL);
//向配置文件中输入信息
CString strName,strTemp;
int nAge;
strName="张三";
nAge=12;
::WritePrivateProfileString("StudentInfo","Name",strName,strIniFile);
strTemp.Format("%d",nAge);//%d需要用双引号括起来吗?
::WritePrivateProfileString("StudentInfo","Age",strTemp,strIniFile);
CloseHandle(hFile);
CString strStudName;
// int nStudAge;
GetPrivateProfileString("StudentInfo","Name","默认姓名",strStudName.GetBuffer(MAX_PATH),MAX_PATH,strIniFile);
}
}