请教怎么判断我指定路径的文件是否存在
我指定的路径是"C:\Program Files\Kingdee\K3ERP\DeleteRow.txt"
需要引用什么组件?

解决方案 »

  1.   

    if dir("C:\Program Files\Kingdee\K3ERP\DeleteRow.txt")<>"" then
        msgbox "文件已存在",48,"提示"
    else 
        ....
    end if
      

  2.   

    if dir("C:\Program Files\Kingdee\K3ERP\DeleteRow.txt") ="" then
        '不存在
    else
        '存在
    endif
      

  3.   

    if dir("C:\Program Files\Kingdee\K3ERP\DeleteRow.txt",vbNormal)<>"" then
        msgbox "文件已存在",48,"提示"
    else 
        ....
    end if
      

  4.   

    if dir("C:\Program Files\Kingdee\K3ERP\DeleteRow.txt")<>"" then
        msgbox "文件已存在",48,"提示"
    else 
        msgbox "文件不存在",48,"提示"
    end if
      

  5.   


    Private Declare Function PathFileExists Lib "shlwapi" Alias "PathFileExistsA" (ByVal pszPath As String) As Long
    Private Declare Function PathIsDirectory Lib "shlwapi" Alias "PathIsDirectoryA" (ByVal pszPath As String) As Long
    Private Declare Function PathIsDirectoryEmpty Lib "shlwapi" Alias "PathIsDirectoryEmptyA" (ByVal pszPath As String) As Long
    Private Declare Function PathIsRelative Lib "shlwapi" Alias "PathIsRelativeA" (ByVal lpszPath As String) As Long
    Private Declare Function PathIsRoot Lib "shlwapi" Alias "PathIsRootA" (ByVal pPath As String) As Long
    Private Declare Function PathIsSystemFolder Lib "shlwapi" Alias "PathIsSystemFolderA" (ByVal pszPath As String, ByVal dwAttrb As Long) As Long
    Private Declare Function PathIsNetworkPath Lib "shlwapi" Alias "PathIsNetworkPathA" (ByVal pszPath As String) As Long
    '检测文件或目录. 根据 TestType 不同返回值不同.
    '   TestType    功能                            返回值
    '----------------------------------------------------------------------------------------------------
    '   IsExists        目录或文件是否存在              0-不存在; 1-文件存在; 2-目录存在
    '   IsRelative      是否为相对路径(不检测存在性)    0-不是相对路径; 1-是相对路径
    '   IsEmptyDir      是否为空目录                    0-不存在; 1-存在但目录非空; 2-存在且为空目录
    '   IsSystemDir     是否为系统目录                  0-不为系统目录或不存在; 1-存在且为系统目录
    '   IsRoot          是否为根目录                    0-不为根目录; 1-为根目录但不存在; 2-为根目录且存在
    '   IsNetworkPath   是否为网络路径(目录或文件)      0-不是网络路径; 1-是网络路径但不存在; 2-是网络路径且存在Public Function TestPath(ByVal lpPathName As String, _
                                Optional ByVal TestType As enuFileTestType = IsExists) As Long
        lpPathName = lpPathName & vbNullChar
        Select Case TestType
            Case IsExists
                If PathFileExists(lpPathName) Then
                    If PathIsDirectory(lpPathName) Then TestPath = 2 Else TestPath = 1
                End If
            Case IsRelative
                If PathIsRelative(lpPathName) Then TestPath = 1
            Case IsEmptyDir
                If PathIsDirectoryEmpty(lpPathName) Then
                    TestPath = 2
                Else
                    If PathIsDirectory(lpPathName) Then TestPath = 1
                End If
            Case IsSystemDir
                If PathIsSystemFolder(lpPathName, 0) Then TestPath = 1
            Case IsRoot
                If PathIsRoot(lpPathName) Then
                    If PathIsDirectory(lpPathName) Then TestPath = 2 Else TestPath = 1
                End If
            Case IsNetworkPath
                If PathIsNetworkPath(lpPathName) Then
                    If PathFileExists(lpPathName) Then TestPath = 2 Else TestPath = 1
                End If
        End Select
    End Function
      

  6.   


    Public Enum enuFileTestType
        IsExists
        IsRelative
        IsEmptyDir
        IsSystemDir
        IsRoot
        IsNetworkPath
    End Enum
      

  7.   

    判断文件存在与否最强不过Dir
      

  8.   

    If UCase(Dir("C:\Program Files\Kingdee\K3ERP\DeleteRow.txt")) = "DELETEROW.TXT" Then
        MsgBox "配置文件未找到!", vbInformation + vbOKOnly, "注意"
    End If
      

  9.   

    If UCase(Dir("C:\Program Files\Kingdee\K3ERP\DeleteRow.txt")) = "DELETEROW.TXT" Then
        MsgBox "配置文件未找到!", vbInformation + vbOKOnly, "注意"
    End If
      

  10.   

    If UCase(Dir("C:\Program Files\Kingdee\K3ERP\DeleteRow.txt")) = "DELETEROW.TXT" Then
        MsgBox "配置文件未找到!", vbInformation + vbOKOnly, "注意"
    End If
      

  11.   

    '声明一个API函数,在最前面
    Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal DirPath As String) As Long
    '注意:要在工程的“引用”里面勾选“visual basic for applications”
     和"visual basic objects and procedures"
    '过程里面执行下述语句
    Dim j_fileobjct0 As New FileSystemObject    '定义一个文件对象
    dim j_objpath as string 
        j_objpath=app.path
    Dim j_bcfile As String
        j_bcfile = j_objpath + "\cc-room\zks\jsz-hph.txt"
    If j_fileobjct0.FileExists(j_bcfile) = False Then 
      '记录待装驳船信息的文件不存在,这是不可能的,除非A机关机或死机或正在开机
      'MsgBox "本机与A机的通信出现问题,找不到驳船排驳信息,请联系计算机人员!!!"
      Else
       Open j_bcfile For Input As #1
       ...
    endif
      

  12.   

    '声明一个API函数,在最前面
    Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal DirPath As String) As Long
    '注意:要在工程的“引用”里面勾选“visual basic for applications”
     和"visual basic objects and procedures"
    '过程里面执行下述语句
    Dim j_fileobjct0 As New FileSystemObject    '定义一个文件对象
    dim j_objpath as string 
        j_objpath=app.path
    Dim j_bcfile As String
        j_bcfile = j_objpath + "\cc-room\zks\jsz-hph.txt"
    If j_fileobjct0.FileExists(j_bcfile) = False Then 
      '记录待装驳船信息的文件不存在,这是不可能的,除非A机关机或死机或正在开机
      'MsgBox "本机与A机的通信出现问题,找不到驳船排驳信息,请联系计算机人员!!!"
      Else
       Open j_bcfile For Input As #1
       ...
    endif
      

  13.   

    不需引用控件。
    直接用 Dir 函数可能会出错的,要改一盘:
    Private Function iDir(ByVal PPath As String) As Boolean
    On Error GoTo AACIf Dir(PPath) <> "" Then
    iDir = True
    Else
    iDir = False
    End IfExit Function
    AAC:
    iDir = False
    End Function
    Private Sub Form_Load()
    If iDir("C:\Program Files\Kingdee\K3ERP\DeleteRow.txt") = True ThenMsgBox "exist"
    ElseMsgBox "not exist"
    End IfEnd Sub这样判断":\aa.txt"就不会出错了。