问题描述:
  偶程序中有个打开文件和显示文件数据操作,打开文件和显示文件数据是两个不同的函数实现,打开函数得到的文件名通过一个CString  dataFileName 全局变量输出,显示文件数据函数根据该dataFileName 的值打开文件,现在偶的
     if (!fParameter.Open(dataFileName,CFile::modeRead,NULL))
 {
AfxMessageBox("打开参数文件失败");
 }
会出现 "打开参数文件失败" 的错误
是怎么回事啊?

解决方案 »

  1.   

    首先确定dataFileName的值是否正确???????
      

  2.   

    在打开文件函数中 输出了dataFileName的值 是正确的文件路径--LZ
      

  3.   

    把CFile::Open的第三个参数CFileException写上去,看看是什么异常?
      

  4.   

    dataFileName
    这里的参数有错啊, 打不开,先检查, 再去打开啊
      

  5.   

    只能::CFileException;单独的语句,放在第三个参数通不过编译,没有什么异常提示,程序被迫结束
      

  6.   

    我是楼主
    如果给赋值dataFileName = 参数2006年6月13日10时1分50秒.txt
    可以打开文件:GetCurrentWorkingDir()+"\\参数文件\\"+dataFileName
    得到的完整文件路径是:
    E:\Xujianhua\源程序1\Debug\\参数文件\参数2006年6月13日10时1分50秒.txt
    执行语句,可以打开文件:
    if (!fParameter.Open(GetCurrentWorkingDir()+"\\参数文件\\"+dataFileName,CFile::modeRead,NULL))
    {               
    AfxMessageBox("打开参数文件失败");
    }
             
    但如果是通过commondalog打开得到的路径是:
    E:\Xujianhua\源程序1\Debug\参数文件\参数2006年6月13日10时1分50秒.txt,然后把该字符串赋值给dataFileName,则文件打开失败
             if (!fParameter.Open(dataFileName,CFile::modeRead,NULL))
             {
    ::CFileException();
    AfxMessageBox("打开参数文件失败");
    }E:\Xujianhua\源程序1\Debug\\参数文件\参数2006年6月13日10时1分50秒.txt
    E:\Xujianhua\源程序1\Debug\参数文件\参数2006年6月13日10时1分50秒.txt
    这两个字符串文件名相差Debug后的一个斜杆"\",前面一个可以打开,后面一个打不开,是怎么回事啊