我想把一个文件拷贝到另一个地方,可能有同名文件存在的可能性。
但是用户有权选择覆盖,可是如果想被覆盖的文件正在使用中,就不行了。
我该如何解决呢?  --!

解决方案 »

  1.   

    楼主想完成什么样的功能?
    自动完成copy?
    如果发现同名文件->覆盖,如果发现同名文件&文件正被使用->跳过?
      

  2.   

    是否有同名文件是在copy之前判断的,copy的时候不出提示,直接覆盖,也没有作判断。
    可是发现那个通明的文件正在使用中时,会出现系统提示错误。我不知道如何去判断。
    我是想跳过,通过什麽方法让我可以有这个选择呢?
      

  3.   

    我的那个文件是个.dwg图片,如果已经打开,则另存失败
      

  4.   

    用GetLastError()看看:
    DWORD Er=GetLastError();if(ERROR_……==Er)
    {
      //……
    }
      

  5.   

    可以在覆盖之前先把它删除掉,加一个判断就可以了。
    if(!DeleteFile("G:\\collect\\server830\\Debug\\server830.exe"))
    AfxMessageBox("删除文件失败!");
      

  6.   

    huxzjqhh的方法不行的
    文件被打开着DeleteFile也能把它删了的
      

  7.   

    Windows系统都经常判断不准,我有什么办法呢??:)
      

  8.   

    用getlasterror应该不行,在文件是独占打开的时候应该可以,可是不独占的时候,其他进程是可以再次打开文件的。
      

  9.   

    HANDLE hf = CreateFile(cName,GENERIC_READ,0,NULL,OPEN_EXISTING,0,NULL);
    if(hf==INVALID_HANDLE_VALUE){
      messageBox"该文件正在被使用,请关闭部分程序在试"
      return;
    }
    CloseHandle( hf );
      

  10.   

    Regular DLL using shared MFC DLL