我将通过savedialog得到的文件名放入一Edit文本框中,如何判断所选取的这一目录下的这一文件是否已经存在,若存在,如何判断是否已被打开,是Excel文件

解决方案 »

  1.   

    文件时候存在用
    用FileExists函数
      

  2.   

    VB的代码
    ==============
    你可以用下面这个函数来检查一个文件是否被打开。 
        Function IsOpen(sFile As String) As Boolean 
         Dim fFile As Integer 
         fFile = FreeFile() 
         On Error GoTo ErrOpen 
         Open sFile For Binary Lock Read Write As fFile 
         Close fFile 
         Exit Function 
        ErrOpen: 
         If Err.Number <> 70 Then 
         Msg = "Error # " & Str(Err.Number) & " was generated by " _ 
         & Err.Source & Chr(13) & Err.Description 
         MsgBox Msg, , "Error", Err.HelpFile, Err.HelpContext 
         Else 
         IsOpen = True 
         End If 
        End Function 
        如果Excel以正常方式打开一个文件,这个函数返回True,否则返回False。这个函数的缺点是如果Excel以副本或只读方式打开文件,也返回False,不过这对一般的程序没什么不利的影响。
      

  3.   

    function IsFileInUse(fName : string ) : boolean; 
    var 
      HFileRes : HFILE; 
    begin 
      Result := false; 
      if not FileExists(fName) then 
        exit; 
      HFileRes := CreateFile(pchar(fName), GENERIC_READ or GENERIC_WRITE,0, nil, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL, 0); 
      Result := (HFileRes = INVALID_HANDLE_VALUE); 
      if not Result then 
        CloseHandle(HFileRes); 
    end;
      

  4.   

    如果Excel以副本或只读方式打开文件,也返回False,那会不会出错呀,因我是发现文件没打开的话,就对其进行写操作,若已打开了的话,就提示‘文件已打开!’.
      

  5.   

    如果是EXE文件 就对指定进程名进程名查找 他的指定位置