CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY ,L"执行文件|*.exe|All files|*.*||");
CString tmp;
if(dlg.DoModal()==IDOK)
{
tmp=dlg.GetPathName();
CFile out(m_FileName,CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite|CFile::typeText);
out.SeekToEnd();
CArchive ar(&out,CArchive::store);
ar.WriteString(tmp+L"\n");
} 上面那个竟然没有把文件路径写进文件里,不过如果不是用CFileDialog就正常,我才学,实在不明白怎么回事,不知道是不是编译器的问题,我用的是.net 2005,高手帮忙指点下吧

解决方案 »

  1.   

    你的m_FileName只是一个文件名吧。应该要全路径(不能相对路径)
    为什么呢?当你选择文件路径的时候,文件路径保存在当前CFileDialog路径下面的m_FileName里面,相对路径已经改变了,而不是你程序里面的m_FileName里面了,你可以试试,如果m_FileName=“path.txt”,那么你选择了文件,path.txt就出现在该文件的同一文件夹.^-^...
      

  2.   

    ..........这个我知道,标准c/c++还是知道的,我是只有用CFileDialog获取的那个路径或者文件名不能写入
      

  3.   

    m_FileName赋值成绝对路径如"C:\\test.txt",还是不行么??