INI文件内容:
[photo]
ddrlj=D:\\pic\\
***************************
CString m_ddrPath;
....
....
::GetPrivateProfileString("photo","ddrlj",NULL,m_ddrPath.GetBuffer(128),128,".\\sdcs_storage.ini");
SetDlgItemText(IDC_STATIC_DDR,m_ddrPath);
为什么得到的还是:D:\\pic\\,而不是D:\pic\?
请问怎样转化成CString?
[photo]
ddrlj=D:\\pic\\
***************************
CString m_ddrPath;
....
....
::GetPrivateProfileString("photo","ddrlj",NULL,m_ddrPath.GetBuffer(128),128,".\\sdcs_storage.ini");
SetDlgItemText(IDC_STATIC_DDR,m_ddrPath);
为什么得到的还是:D:\\pic\\,而不是D:\pic\?
请问怎样转化成CString?
解决方案 »
- sqlite3_open 能不能创建数据库?
- Z字序窗口的一个问题
- 高手们,进来看一下!
- 关于template
- 定义一个数组模板类CMyArray,定义一个普通类CPT,在类CMyClass中定义CMyArray <CPT> test;现在要把test作为参数传递给CMyClass的成员函
- 有人看过bo2000的源代码吗?
- 这个错误怎么解决啊?
- 怎样调用基类CLinkButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)这个虚拟函数
- CEditView中为何不能用TextOut显示出字来?等...
- 如何填充一个不规则的图形??
- 怎么看到98的日志?
- 求《inside ole2》
他读进去就是ddrlj=D:\\\\pic\\\\
你直接写成
ddrlj=D:\pic\
在字符串或字符中才轉化特殊字符。例如:
CString m_ddrPath="D:\\pic\\";
SetDlgItemText(IDC_STATIC_DDR,m_ddrPath);
這時在文本中寫的才是D:\pic\樓主的程序中如果ini文件裡應該是D:\pic\
執行::GetPrivateProfileString("photo","ddrlj",NULL,m_ddrPath.GetBuffer(128),128,".\\sdcs_storage.ini");
後會 m_ddrPath="D:\\Pic\\"; 其實"D:\\Pic\\"就是D:\Pic\ ,只是字符串將\做轉義字符處理,所以表示'\'時用'\\'
void CDoPicDlg::OnTimer(UINT nIDEvent)
{
// CString pth;
// pth="D:\\pic\\";
// ListFolder(pth); //这样就能正常运行
ListFolder(m_ddrPath); // 这样就运行不了
}void CDoPicDlg::ListFolder(CString sPath)
{
CFileFind ff;
BOOL bFound;
bFound = ff.FindFile(sPath + "\\*.JPG");//找第一个文件
while(bFound)//如果找到,继续
{
bFound = ff.FindNextFile();
CString sFilePath = ff.GetFilePath(); if(ff.IsDirectory())//如果是目录,注意任何一个目录都包括.和..目录
{
if(!ff.IsDots())//去除.和..目录
ListFolder(sFilePath);//递归下一层目录
} else {
// 存储图片,这个函数是正常的
SaveToDB(sFilePath);
}
}
ff.Close();
}
[photo]
ddrlj=D:\\pic\\
********************
改成=========>>>>>>>>>
[photo]
ddrlj=D:\pic\
********************
{
// ******* 大家请注意这里 *******
// CString pth;
// pth="D:\\pic\\";
// ListFolder(pth); //注释这样就能正常运行
ListFolder(m_ddrPath); // 这样就运行不了
}void CDoPicDlg::ListFolder(CString sPath)
{
CFileFind ff;
BOOL bFound;
bFound = ff.FindFile(sPath + "\\*.JPG");//找第一个文件
while(bFound)//如果找到,继续
{
bFound = ff.FindNextFile();
CString sFilePath = ff.GetFilePath(); if(ff.IsDirectory())//如果是目录,注意任何一个目录都包括.和..目录
{
if(!ff.IsDots())//去除.和..目录
ListFolder(sFilePath);//递归下一层目录
} else {
// 存储图片,这个函数是正常的
SaveToDB(sFilePath);
}
}
ff.Close();
}
怎么解决呀
[photo]
ddrlj=D:\pic\
**************************
::GetPrivateProfileString("photo","ddrlj",NULL,m_ddrPath.GetBuffer(128),128,".\\sdcs_storage.ini");
得到的m_ddrPath和m_ddrPath="D:\\pic\\";有什么区别?着急呀,急呀!