使用CStdioFile类的Open方法打开文本文件时出现无法打开的问题。
代码如下:
CStdioFile inFile;
……循环开始
if(!inFile.Open(FileName, CFile::modeRead|CFile::typeText)) {
  CString msg;
  msg.Format("无法打开选定文件"+tmpFileName+"!");
  AfxMessageBox(msg);
  continue;
}
……循环结束
实验1过程:
选定一个名为abcd.Txt文件,出现提示依次如下:
无法打开选定文件C:\!
无法打开选定文件00\!
无法打开选定文件bcd!
无法打开选定文件Txt!实验2过程:
选定选定一个名为abcd.txt文件,运行正常。请教原因。

解决方案 »

  1.   

    你给的信息不够,无法判断问题。
    另外,你两次给定的是同一个文件。
    Windows 不区分大小写,除非你用了特殊的系统。
      

  2.   


    首先,我的系统是Windows xp sp2,开发环境是vc++ 6.0 sp5。我知道Windows不区分大小写,所以我新建2个内容一模一样的的文件,一个是1.txt, 一个是2.Txt。结果发现1.txt能读取,2.Txt读取失败。不知道这样的信息是否足够?
      

  3.   

    我按照楼主的方式,建立你说的这2个文件都可以正常打开的。
    我觉得这里不需要怀疑是大小写的问题,txt和Txt的后缀肯定没问题,而且都能正常打开。
    楼主既然写的是一个循环,我怀疑你是inFile.Open之后,没有inFile.Close(),这样第一次打开1.txt成功了,但没关闭,结果再去打开第二个就报错了!
      

  4.   


    谢谢你。
    我自己已经搞定了。
    [/Quote]你好,很想知道你是怎么搞定的?问题出在哪了?我现在遇到一个问题是:
    程序中不停地调用这个函数,每调用一次即往文件里写一次数据。大概写个2-3万次后,会出面一次文件打开失败。程序是顺序执行的,没有在其他函数中使用到此文件。也没有在其他地方打开此文件。随机出现,大概写个几万条数据,就会出现一次打开文件失败 
    不知道是否和你的问题一样,另外能否对我出现的问题给予一下指点,谢谢