怎樣判斷文件夾中是否存在該文件呢?
 用Dir()嗎?
我用Dir(FileName)好像沒有得到我想要的結果,
有沒有其他的函數呀?

解决方案 »

  1.   

    if Dir$(FileName)="" then msgbox "文件不存在。"
      

  2.   

    Dir 函数示例
    本示例使用 Dir 函数来检查某些文件或目录是否存在。在 Macintosh 计算机上,默认驱动器名称是 “HD” ,并且路径部分由冒号取代反斜线隔开。而且 Microsoft Windows 的通配符在 Mac 中可以作为有效字符出现在文件名中。也可以使用 MacID 函数来指定文件组。Dim MyFile, MyPath, MyName' 返回“WIN.INI” (如果该文件存在)。
    MyFile = Dir("C:\WINDOWS\WIN.ini")   ' 返回带指定扩展名的文件名。如果超过一个 *.ini 文件存在,
    ' 函数将返回按条件第一个找到的文件名。
    MyFile = Dir("C:\WINDOWS\*.ini")' 若第二次调用 Dir 函数,但不带任何参数,则函数将返回同一目录下的下一个 *.ini 文件。
    MyFile = Dir' 返回找到的第一个隐式 *.TXT 文件。
    MyFile = Dir("*.TXT", vbHidden)' 显示 C:\ 目录下的名称。
    MyPath = "c:\"   ' 指定路径。
    MyName = Dir(MyPath, vbDirectory)   ' 找寻第一项。
    Do While MyName <> ""   ' 开始循环。
       ' 跳过当前的目录及上层目录。
       If MyName <> "." And MyName <> ".." Then
          ' 使用位比较来确定 MyName 代表一目录。
          If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
             Debug.Print MyName   ' 如果它是一个目录,将其名称显示出来。
          End If
       End If
       MyName = Dir   ' 查找下一个目录。
    Loop
      

  3.   

    我寫了一段代碼;
        BackupName = Replace(str(Filedate), "/", "-")
        FileName = App.Path + "\Backup\" + BackupName + ".mdb"
            
        If IsNull(Dir(FileName)) = True Then
            MsgBox "File is not exist!", , "Waring!"
            Exit Sub
        Else
            SHFileOp.wFunc = FO_COPY
            SHFileOp.pFrom = FileName
            SHFileOp.pTo = App.Path + "\info.mdb"   
            SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMMKDIR
            Call SHFileOperation(SHFileOp)
        End If我的FileName 調試時值="..\backup\2004-3-18.mdb"
    可是不管文件是否存在,dir(Filename)都不能正確判斷,
    但是如果寫成Dir("..\backup\2004-3-18.mdb")這樣才行
    為啥///?????
      

  4.   

    '
    '判断某个文件是否存在.
    '函数:FileCheck
    '参数:FileName 目标文件名.
    '返回值:=TRUE 存在,=FALSE 不存在.
    Public Function FileCheck(Filename As String) As Boolean
         Dim FileID As Long
         
         On Error Resume Next
         
         FileID = FreeFile()
         Open Filename For Input As #FileID
         Close #FileID
         FileCheck = (Err.Number = 0)
         Err.Clear
    End Function
      

  5.   

    MSDN如是说:
    Null 值指出 Variant 不包含有效数据。Null 与 Empty 不同,后者指出变量尚未初始化。Null 与长度为零的字符串 (““) 也不同,长度为零的字符串指的是空串
    '--------------------------------
    也就是说IsNull不能判断""这样的空字串!!!所以每次都只会返回Flash
      

  6.   

    if filename<>"" and dir(filename)="" then
      'filename not exist
    else
      'filename exist
    end if
      

  7.   

    用FSO的FileExists()来判断最方便。1.首先引用"Microsoft Scripting Runtime"库;
    2.然后声明变量:
      Dim Fso As FileSystemObject
    3.调用函数进行判断:
      If Fso.FileExists(文件名1) Then '若该文件存在
         ...
      End If
      

  8.   

    上面代码忘了一句,在使用FSO之前应该先初始化对象:
        Set Fso = New FileSystemObject
      

  9.   

    TmpFile = IIf(Right(App.Path, 1) = "\", App.Path & "RunCard\" & "ProductBankInTemp.xls", App.Path & "\RunCard\" & "ProductBankInTemp.xls")
        If Dir(TmpFile) <> "" Then Kill TmpFile '讀取Excel臨時範本的路徑,並刪除此文件
        If Dir(App.Path & "\RunCard\ProductBankIn.xls") = "" Then  '找出原始Excel文檔
            MsgBox "找不到Excel檔." & App.Path & "\RunCard\ProductBankIn.xls" & " ,無法列印,請檢查是否存在!!", vbInformation, "提示"
            Exit Function
        End If
      

  10.   

    Public Function FileExists(ByVal sFilename As String) As Boolean
        On Error Resume Next
        Call GetAttr(sFilename)
        FileExists = (Err.Number = 0)
    End Function