VB 判断文件是否存在

原创 2011年04月12日 11:49:00

方法一:
    在编程时经常会用到判断文件是否存在,比如对文件做读写操作前,或是判断密钥文件是否存在等。判断的方法有很多,有些方法虽很实用,但有点繁琐。其实还可以有更简单的方法,就是使用vb 6.0提供的filesystemobject对象。
  filesystemobject对象不是vb内置对象,使用前必须首先选择[工程]→[引用],在出现的窗口中选择“microsoft scripting runtime”,然后利用filesystemobject的fileexists方法来判断文件是否存在。示例程序代码如下:
  private sub command1_click()
   ′引用filesystemobject对象
   dim fs as new filesystemobject
   ′利用filesystemobject对象的fileexists
   ′方法判断文件是否存在
   if fs.fileexists(″c:*.gif″) then
   msgbox ″文件存在″
   else
   msgbox ″文件不存在″
   end if
  end sub
  灵活运用filesystemobject对象可以解决与文件操作有关的大部分问题。

方法二:

1。利用DIR
      If dir(fname)="" then '文件不存在

2。利用 api

在某些场合,我们需要确定特定目录下特定文件是否存在。VB自带的DIR函数可以查找符合条件的文件。这里介绍一种较为简单的方法。

API函数的 SHFileExists 的功能,从其名字来看,应该是 Search File Exists,亦即查找存在的文件。用它来检测文件存在与否是很容易的。试看下面的例子。

在标准EXE工程放置两个文本框和一个按钮,输入如下代码:

Private Declare Function SHFileExists Lib "shell32" Alias "#45" (ByVal szPath As String) As Long

Private Sub Command1_Click()

Dim i As Integer

i = Str$(SHFileExists(Text1.Text))

If i = 0 Then 'Str$值只有两种可能,0或者1

Text2.Text = "文件不存在"

Else

Text2 = "文件存在"

End If

End Sub

按F5运行程序,在 Text1 输入要查找的文件的驱动器名、路径和名称,然后点击按钮,Text2会报告文件是否存在。

值得一提的是,SHFileExists 函数支持对任何文件的查找,同时也支持对文件夹的查找。

3。Public Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal DirPath As String) As Long '创建多层目录

用法:

MakeSureDirectoryPathExists "c:/this/is/a/test/directory/"

4。不用FSO对象 VB直接检测文件是否存在

'不用FSO对象   VB直接检测文件是否存在,当使用fso的程序需要带runtime文件。' 这样程序变成多个文件,很多操作系统本身并没有这个文件。'有些人使用Dir("文件名")判断,但是当主调函数也正在用dir并且后续使用没有结束时就会出错。Public Function FileExists(ByVal File As String) As Boolean

                     On Error Resume Next

                     If (GetAttr(File) And vbDirectory) = False Then FileExists = True

                     If err Then FileExists = False: err.Clear

         End Function

         Function FolderExists(ByVal Folder As String) As Boolean

                     On Error Resume Next

                     If GetAttr(Folder) And vbDirectory Then FolderExists = True

                     If err Then FolderExists = False: err.Clear

         End Function

上面都是用的vbDirectory=16 不要认为写错了

1。利用DIR
      If dir(fname)="" then '文件不存在

2。利用 api

在某些场合,我们需要确定特定目录下特定文件是否存在。VB自带的DIR函数可以查找符合条件的文件。这里介绍一种较为简单的方法。

API函数的 SHFileExists 的功能,从其名字来看,应该是 Search File Exists,亦即查找存在的文件。用它来检测文件存在与否是很容易的。试看下面的例子。

在标准EXE工程放置两个文本框和一个按钮,输入如下代码:

Private Declare Function SHFileExists Lib "shell32" Alias "#45" (ByVal szPath As String) As Long

Private Sub Command1_Click()

Dim i As Integer

i = Str$(SHFileExists(Text1.Text))

If i = 0 Then 'Str$值只有两种可能,0或者1

Text2.Text = "文件不存在"

Else

Text2 = "文件存在"

End If

End Sub

按F5运行程序,在 Text1 输入要查找的文件的驱动器名、路径和名称,然后点击按钮,Text2会报告文件是否存在。

值得一提的是,SHFileExists 函数支持对任何文件的查找,同时也支持对文件夹的查找。

3。Public Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal DirPath As String) As Long '创建多层目录

用法:

MakeSureDirectoryPathExists "c:/this/is/a/test/directory/"

4。不用FSO对象 VB直接检测文件是否存在

'不用FSO对象   VB直接检测文件是否存在,当使用fso的程序需要带runtime文件。' 这样程序变成多个文件,很多操作系统本身并没有这个文件。'有些人使用Dir("文件名")判断,但是当主调函数也正在用dir并且后续使用没有结束时就会出错。Public Function FileExists(ByVal File As String) As Boolean

                     On Error Resume Next

                     If (GetAttr(File) And vbDirectory) = False Then FileExists = True

                     If err Then FileExists = False: err.Clear

         End Function

         Function FolderExists(ByVal Folder As String) As Boolean

                     On Error Resume Next

                     If GetAttr(Folder) And vbDirectory Then FolderExists = True

                     If err Then FolderExists = False: err.Clear

         End Function

上面都是用的vbDirectory=16 不要认为写错了

VB中如何判断文件、文件夹是否存在

在VB中编程中,经常需要判断一个文件是否存在,以便执行相应的操作,这可用下列语句进行判断        Dir([pathname],[Attributes as VbFileAttribute=vb...
  • changleqy
  • changleqy
  • 2007年08月05日 10:39
  • 7618

在VB中如何判断文件、文件夹是否存在和生成文件夹

一、在VB编程中,经常需要判断一个文件和文件夹是否存在,以便执行相应的操作,这可以用下列语句进行判断。  Dir ([PathName],[Attributes as VbFileAttri...
  • angel20082008
  • angel20082008
  • 2015年04月24日 19:39
  • 6114

VB 判断文件是否存在

  • 2010年04月26日 12:33
  • 5KB
  • 下载

VB6调用API打开目标文件所在文件夹且选中目标文件

VB6调用API打开目标文件所在文件夹且选中目标文件
  • tanaya
  • tanaya
  • 2010年08月22日 11:31
  • 3580

VB FileSystemObject对象 详解

FileSystemObject对象被用来访问服务器上的文件系统。这个对象能够处理文件、文件夹和目录路径。用它来检索文件系统信息也是可能的。 下面的代码创建了一个文本文件,并写入了一些文本:  ...
  • limlimlim
  • limlimlim
  • 2013年04月03日 17:10
  • 12216

VB.Net判断目录或文件是否存在的代码

 Imports System.IO    Public Class Form1    Private Sub Form1_Load(ByVal sender As System.Object, By...
  • ITshu
  • ITshu
  • 2009年03月03日 16:13
  • 4909

VB.NET判断一个路径的文件是否存在

使用文件系统操控文件和路径的能力是任何程序的一个重要功能。 在本文所介绍的技巧中,我们将检测VB.NET 如何与文件系统进行作用。 通过现有类、方法和属性示例给出简便方法完成必须的功能。 为了能够操...
  • myinc
  • myinc
  • 2013年12月05日 17:02
  • 2751

VB.NET 判断文件夹目录与文件是否存在检查

Private Sub BTN_LOAD_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesBTN_LO...
  • yangengchao
  • yangengchao
  • 2012年05月27日 20:23
  • 1592

VC 判断文件是否存在的几种方法

1、_access函数2、CreateFile函数3、FindFirstFile函数4、GetFileAttributes函数一、使用_aceess函数:使用_access函数判断文件是否存在是比较简...
  • varding
  • varding
  • 2010年04月23日 09:33
  • 14946

VC++判断文件或文件夹是否存在

VC++判断文件或文件夹是否存在在Windows应用项目中,几乎总会需要用到一些文件系统相关的函数,如:判断文件是否存在,判断文件夹是否为空,删除文件夹及其所有子项,计算文件夹的大小,等等。不知为何,...
  • u012494876
  • u012494876
  • 2016年04月20日 22:08
  • 17572
收藏助手
不良信息举报
您举报文章:VB 判断文件是否存在
举报原因:
原因补充:

(最多只允许输入30个字)