在程序中需要使用一个excel,但在使用前必须确认文件是未打开的,那么如何判断此文件是否被打开呢?

解决方案 »

  1.   

    以独占的方式open,失败就表示已有程序打开
      

  2.   

    使用 EXCLUSIVE 方式 CreateFile 打开,如果返回 INVALID_HANDLE 
    用 GetLastError 来判断是否被拒绝
      

  3.   

    判断文件是否在使用:bool IsFileInUse(String FileName)
    {
        bool Result;
        HANDLE Handle = CreateFile(FileName.c_str(), GENERIC_READ | GENERIC_WRITE,
          0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
        Result = INVALID_HANDLE_VALUE == Handle;
        if (!Result)
          CloseHandle(Handle);
        return Result;
    }