我想查找某个文件(组件文件),找到后就注销它.
但我不能确定它存放的路径,只能知道它的文件名,那应该如何做呢?
谢谢!

解决方案 »

  1.   

    自己查找   CFileFind finder;
       BOOL bWorking = finder.FindFile("*.*");
       while (bWorking)
       {
          bWorking = finder.FindNextFile();
          cout << (LPCTSTR) finder.GetFileName() << endl;
       }
      

  2.   

    对了,也要谢谢SoLike,不过你的代码我试了一下,好像只能找应用程序目录和环境变量设置的搜索目录中的文件吧,可我的文件不在这些路径中怎么办?
      

  3.   

    这个问题太简单了,<<C++函数实用手册>>就有函数.
      

  4.   

    哎~
    空欢喜一场,没下到
    能否传给我一份mail:[email protected]
    谢谢谢谢谢谢~~~
      

  5.   

    组件,在HKEY_CLASSES_ROOT\CLSID里查好了,一般是根据组件的类型一般有InprocServer32类型和LocalServer32类型,举个例子:
    HKEY_CLASSES_ROOT\CLSID\{00028C08-0000-0000-0000-000000000046}\InprocServer32
    在里面的默认VALUE保存着它的完整路径.
    注册表的查找KEY:RegEnumKey(),VALUE:RegEnumValue().
    注销还是用REGSVR32 -U比较方便,不要逐项删.
      

  6.   

    可是我看了一下,里面的默认VALUE没有保存路径啊,那可怎么办啊?
      

  7.   

    自己先查找了,用CFileFind来查找,然后比较判断,最后该怎么着就怎么着吧,全是你的天下了,呵呵
      

  8.   

    我试过但是CFileFind只能找应用程序目录和环境变量设置的搜索目录中的文件,而我要找的文件不一定在设置的搜索目录中那怎么办?
      

  9.   

    查找文件使用CFileFind与直接使用SDK function FindFirstFile等类似,关键在于如何实现子目录查找,因为每次的查找都可以得知当前文件是否一个目录文件,所以可以考虑使用递归函数来实现。
      

  10.   

    http://dev.csdn.net/article/0/739.shtm里面有说。