VC简单问题如何打开通用对话框选择文件把文件路径写到自身程序下面,不用给完整代码,我给了
我在百度百科查到注意GetCurrentDirectory当前目录这东西有点怪异,本来确实是可执行文件的所在目录,但是当用文件对话框成功打开一个文件后,该目录就被修改为被...
我在百度百科查到
注意GetCurrentDirectory当前目录这东西有点怪异,本来确实是可执行文件的所在目录,但是当用文件对话框成功打开一个文件后,该目录就被修改为被打开的文件所在目录。比如在程序中使用"123.txt"这样的文件名,希望将它存储在exe文件所在目录中,但是当用户用文件对话框打开一个文件"F:\456.txt"后,这个123.txt会被存储到F盘下。
我直接双击按钮写了一个函数功能就是打开通用对话框选择一个文件把文件路径写到config
void CMyDlg::OnOK()
{
// TODO: Add extra validation here
CString m_fName;
char Filter[]="文本文件(*.txt)|*.txt||";
CFileDialog dlgOpen(TRUE,0,0,OFN_HIDEREADONLY|OFN_FILEMUSTEXIST,(LPCTSTR)Filter,NULL);
if(dlgOpen.DoModal()==IDOK)
{
m_fName=dlgOpen.GetPathName();
}
else return ;
if (m_fName.Find(".txt") > 0 )
{
CFile file;
file.Open("config.ini",CFile::modeCreate|CFile::modeWrite);
file.Write(m_fName,m_fName.GetLength());
file.Close();
}
}
但是我打开E:\我的文件\1.txt直接把config写到这个目录下面,而不是写到我程序目录下面怎么修改 展开
注意GetCurrentDirectory当前目录这东西有点怪异,本来确实是可执行文件的所在目录,但是当用文件对话框成功打开一个文件后,该目录就被修改为被打开的文件所在目录。比如在程序中使用"123.txt"这样的文件名,希望将它存储在exe文件所在目录中,但是当用户用文件对话框打开一个文件"F:\456.txt"后,这个123.txt会被存储到F盘下。
我直接双击按钮写了一个函数功能就是打开通用对话框选择一个文件把文件路径写到config
void CMyDlg::OnOK()
{
// TODO: Add extra validation here
CString m_fName;
char Filter[]="文本文件(*.txt)|*.txt||";
CFileDialog dlgOpen(TRUE,0,0,OFN_HIDEREADONLY|OFN_FILEMUSTEXIST,(LPCTSTR)Filter,NULL);
if(dlgOpen.DoModal()==IDOK)
{
m_fName=dlgOpen.GetPathName();
}
else return ;
if (m_fName.Find(".txt") > 0 )
{
CFile file;
file.Open("config.ini",CFile::modeCreate|CFile::modeWrite);
file.Write(m_fName,m_fName.GetLength());
file.Close();
}
}
但是我打开E:\我的文件\1.txt直接把config写到这个目录下面,而不是写到我程序目录下面怎么修改 展开
1个回答
展开全部
打开文件对话框创建对象的时候,CFileDialog OpenDlg(TRUE,0,0,OFN_HIDEREADONLY|OFN_FILEMUSTEXIST,(LPCTSTR)Filter,NULL);
第四个参数,是设置是否当由主程序界面的按钮打开了文件对话框并选了某个文件,返回主程序界面后默认的路径变成了选择文件的路径的,将参数加上 |OFN_NOCHANGEDIR 就不会改变你的默认路径了
获取程序路径好像可以用GetModuleFileName()这个函数
第四个参数,是设置是否当由主程序界面的按钮打开了文件对话框并选了某个文件,返回主程序界面后默认的路径变成了选择文件的路径的,将参数加上 |OFN_NOCHANGEDIR 就不会改变你的默认路径了
获取程序路径好像可以用GetModuleFileName()这个函数
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询