你看一下CFileFind::FindFile的源代码就清楚了,内部FindFirst调用了api函数FindFirstFile, 会打开文件,生成搜索句柄,如果已经打开,当然返回为0

解决方案 »

  1.   

    直接使用FindFirstFile,FindNextFile来查找文件,用这个类很不 好。
      

  2.   

    To: Yfspace(异风) 
    我只是打开了其中的一个文档而已,为什么其他的也打不开?
    另外,如果我不手工打开,而是用我的程序自己打开,则多次打开都可以(先把打开的文档关了),同时我又试过将其中的一个文档不关闭(其他关闭),再用程序打开,发现已经打开的文档不会再次打开(保留),而其他的文档则再次打开。
    请问怎么搞定它?
      

  3.   

    我跟踪了一下,发现是在
    BOOL CFileFind::FindFile(LPCTSTR pstrName /* = NULL */,
    DWORD dwUnused /* = 0 */)
    {

    m_hContext = ::FindFirstFile(pstrName, (WIN32_FIND_DATA*) m_pNextInfo);

    }
    的::FindFirstFile()那一句返回了-1
    为什么?有谁能够告诉我?