file.Open("CommonNum.txt",CFile::modeRead)
多么简单的一条语句?
可是,可是为什么我无论把commonnum.txt放在release下,还是放在debug下还是放在工程目录下,还是放在系统目录下,就都读不出来!
更为奇怪的是,我把可执行文件弄出来放到桌面上,commonnum.txt也放到桌面上在执行(虽然这种做法毫无道理可言)竟然,你猜怎么着?也不行,于是各种方法乱试,最后又试了一次桌面上那个,居然读了!真的读了!
我觉得这是我以后理性编程的一大阴影,晕!我是不是见鬼了?那位路过的大师帮我念念咒驱驱魔啊?

解决方案 »

  1.   

    你可以在程序里调GetCurrentDirectory
    The GetCurrentDirectory function retrieves the current directory for the current process. DWORD GetCurrentDirectory(
      DWORD nBufferLength,  // size of directory buffer
      LPTSTR lpBuffer       // directory buffer
    );
    看看是什么路径另外,你有没有做什么改变当前路径的操作,比如调用了打开文件对话框什么的
      

  2.   

    原来试MFC搞的鬼!
    是这样的,一个工程的当前目录当然是这个工程的目录而不是release和debug,即在这个工程中调试程序的话,当前目录就是工程目录,不过这个目录不是因为你在调试这个程序就永远不变了,加入你这个程序在调试的时候调用了windows的save as 或者试open对话框,那么当前目录就变了,就编程那两个对话框默认打开的目录了如:"C:我的文档",这是MFC自动改变的,你在程序里要不重新设定的话还真不好办把他变回来.归根到底是当前目录这个名词要怎么理解的问题.当前目录,当前目录,我就从没想过它不是我程序的目录还会是什么目录,其实,这个当前目录的主人不是你的程序,而是windows