vb查找文件

作者&投稿:易若 (若有异议请与网页底部的电邮联系)
vb中如查找文件是否存在~

VB中可用Dir函数查找文件是否存在。
Dir 函数,返回一个 String,用以表示一个文件名、目录名或文件夹名称,它必须与指定的模式或文件属性、或磁盘卷标相匹配。

Dir 函数示例:

本示例使用 Dir 函数来检查某些文件或目录是否存在。在 Macintosh 计算机上,默认驱动器名称是 “HD” ,并且路径部分由冒号取代反斜线隔开。而且 Microsoft Windows 的通配符在 Mac 中可以作为有效字符出现在文件名中。也可以使用 MacID 函数来指定文件组。
Private Sub Form_Click() 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 ' 查找下一个目录。 LoopEnd Sub以下是在D盘根目录下查找zhang2012.xls是否存在的代码:
Private Sub Command1_Click() Dim fl If Dir("D:\zhang2012.xls") "" Then Print "文件存在" Else Print "文件不存在" End IfEnd Sub

  在这里需要举一个例子好能清楚的了解在VB中怎么查找文件,如下:
  假设要找的文件是TextBox 叫 TextBox1,那么可以在VB中这样写:
  dim FileName, Path as string
  Path = "D:\123\"
  FileName = Path & TextBox1.Text & ".xlsx" (后面根据文件的扩展名更改即可)
  Workbooks.Open filename:=FileName
  VB全称是Visual Basic,是一种由 Microsoft 公司开发的结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。从任何标准来说,VB都是世界上使用人数最多的语言——不管是盛赞VB的开发者还是抱怨VB的开发者的数量。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。

command1_click触发:
(1)查找相关文件,在什么情况 下用什么方法查找你可以看后面的附件,但不管查没查到都要返回一个值以供判断;
(2)判断返回的值,如果值为真则打开窗体(如Open Form1,Form1.show),并跳出代码; 如果值为假则继续执行余下代码。
附件:
VB查找文件的两种方法

---- VB开发人员都会遇到文件定位的问题。VB提供的Dir[(pathname[, attributes])]函数应该可以满足各种文件定位问题。使用Dir函数时,我们必须给它提供文件的全部路径,否则是找不到的。而有时我们往往是不知道文件的路径的,如果要利用该函数来定位文件,我们必须编写一定的代码。笔者在利用该函数编制查找文件的函数时,颇费了些工夫,可是发现查找的效率不高,效果不太理想。那么有没有编码少且更快的方法查找文件呢?笔者后来利用一个 API函数成功地编制了一个高效率的查找文件的函数。下面一一介绍给大家,起个抛砖引玉的作用,期望大家能编制出更高效的函数。

---- 一. 利用DIR函数查找文件

---- Dir[(pathname[, attributes])]是VB提供的用来检查某些文件或目录是否存在的函数,它返回一个 String,用以表示一个文件名、目录名或文件夹名称,返回值必须与指定的模式或文件属性、或磁盘卷标相匹配。

---- 如果文件的路径很清楚,那么确定文件是否存在简单地调用该函数就行了。如果光知道文件名,甚或只知道文件的后缀,要定位文件的话就需要一定的编码了。下面的例子用来定位c:\下所有目录内是否有文件Win.ini。

Function FindDirectory(RootPath As
String, Mydirectory() As String)
Dim intResult, I, intFind As Integer
‘首先查找根目录下的所有子目录
MyPath = "c:\" ' 指定路径c:\。
MyName = Dir(MyPath, vbDirectory) ' 找寻第一项。
intResult = 1
ReDim Mydirectory(intResult) ‘初始化动态数组
Do While MyName < > "" ' 开始循环。
' 跳过当前的目录及上层目录。
If MyName < > "." And MyName < > ".." Then
' 使用位比较来确定 MyName 代表一目录。
If (GetAttr(MyPath & MyName)
And vbDirectory) = vbDirectory Then

' 如果它是一个目录,将其名称存储在一个数组里。
Mydirectory(intResult) = MyPath & MyName
intResult = intResult + 1
ReDim Preserve Mydirectory(intResult)
‘分配动态数组实际的元素个数,并保留数组中的数据
End If
End If
MyName = Dir ' 查找下一个目录。
Loop
‘在所有目录里分别查找文件是否存在。
For I = 1 To UBound(Mydirectory)-1
MyFile = Mydirectory(I) & "\win.ini"
intFind = Len(Dir(MyFile))
If intFind < > 0 Then MsgBox "找到文件" &
Dir(MyFile) & "在:" & Mydirectory(I)
Next I
End Function

---- 该函数的思路很清晰:先遍历根目录下所有的子目录,然后在每个子目录里查找文件。该函数有一个缺陷:只能查找根目录下的一级子目录,无法遍及整个硬盘。如果要遍及整个硬盘,还需要额外的编码,这里不再多述。

---- 二. 利用API函数查找文件

---- 在使用VB的过程中我深深地体会到,只有充分利用API的函数才能更充分地发挥VB的优势。 API函数 SearchTreeFile可以很快地定位一个文件。借助该函数笔者编了一个快速查找文件的函数sysFileFind.

Declare
Public Declare Function SearchTreeForFile Lib
"imagehlp.dll" (ByVal lpRoothPath As String,
ByVal lpInputName As String,
ByVal lpOutputName As String) As Long

---- 下面为sysFileFind函数的编码:

Public Function sysFileFind
(ByVal WhichRootPath As String,
ByVal WhichFileName As String) As String
Dim iNull As Integer
Dim lResult As Long
Dim sBuffer As String
On Error GoTo L_FILEFINDERROR
sBuffer = String$(1024, 0)
'查找文件
lResult = SearchTreeForFile
(WhichRootPath, WhichFileName, sBuffer)
'如果文件找到,将返回字符串后续的空格删除
'否则返回一个空字符串
If lResult Then
iNull = InStr(sBuffer, vbNullChar)
If Not iNull Then
sBuffer = Left$(sBuffer, iNull - 1)
End If
sysFileFind = sBuffer
Else
sysFileFind = ""
End If
Exit Function
L_FILEFINDERROR:
MsgBox "查找文件过程中遇到错误!",
vbInformation, "查找文件错误"
sysFileFind = Format(Err.Number)
& " - " & Err.Description
End Function

---- 该函数可以很快遍历整个硬盘,从而查找到我们所需的文件。

---- 三. 总结

---- 上面两个函数都在中文VB5和Win98环境下调试通过。我们可以看到第二种方法编码更简单,效率更高。

---- VB5强大的功能赢得了越来越多开发人员的青睐。如果适当地利用API函数,我们可以说,利用VB可以轻松地完成我们开发中的所有任务。

if dir("d:\1.txt")="" then
执行代码
else
form2.show
end if

可以用dir函数
或者filesystemobject


如何根据文件名列表批量搜索文件
7、最后设置需要查找拷贝的文件名称。以文本文档的形式保存文件名的排列格式是每行一个,最后直接单击运行,你就会在''拷贝结果存放位置''文件夹中看到你想要的文件。\/iknow-pic.cdn.bcebos.com\/d043ad4bd11373f07920bfc2aa0f4bfbfbed0454"target="_blank"title="点击查看大图"class="ikqb_img_alink"...

如何查找文件\/文件类型\/属性
你应该咨询的是Linux系统下查找文件、文件类型、属性的方法吧:---查找文件 1、find名称查找文件格式:$ find [ PATH ] [ option ] [ action]常用option如下:-name fileName -size [+-]SIZE #+表示大于 -表示小于 -type TYPE #TYPE为f\/d\/l\/s\/b\/c -perm mode #搜寻文档权...

详解Linux中查找目录和文件的find和locate命令
-newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件。-type 查找某一类型的文件,诸如:b - 块设备文件。d - 目录。c - 字符设备文件。p - 管道文件。l - 符号链接文件。f - 普通文件。s - socket文件 -size n[c] 查找文件长度为n块的文件,带有c时表示文件长度以...

VBA查找文件夹下所有excel文件中的相关数据
'.Filename = "*.xls*" '这里可以打开任何类型的工作簿文件 .SearchSubFolders = True If .Execute() > 0 Then For i = 1 To .FoundFiles.Count Sheet1.Range("A" & Sheet1.[A65536].End(xlUp).Row + 1) = i Sheet1.Range("B" & Sheet1.[A65536].End(xlUp).Row).Hyperlinks...

如何在电脑中查找一个文件夹路径?
需要通过注册表窗口进行寻找,方法如下:操作设备:戴尔电脑 操作系统:win10 1、打开需要查找文件的目录,如下图所示:2、选中文件夹,右击选择重命名,如下图所示:3、复制文件夹的名字,如下图所示:4、按键盘上的Win+R打开运行对话框,在运行对话框里输入regedit,打开注册表,如下图所示:5、在...

怎么编写bat文件,是什么语法,给几个范本
上例即可以罗列出D盘下的所有文件夹,其速度要比命令"tree d:"慢多了,不过其返回结果的实用性则远远超过了tree命令。 一般情况下我们不推荐通过遍历文件夹来查找文件,特别是在查找某些程序(比如QQ.exe)的位置时。推荐通过reg命令查找注册表来查找QQ的路径,以保证查找效率。

linux查找内容命令
updatedb:第一次运行前,创建locate数据库 grep,用于过滤\/搜索指定字符串。可以使用正则表达式,能配合多种命令使用。用法:grep 【选项】 查找内容 源文件 -A:显示符合的行及之后的内容 -B:显示符合的行及之前的内容 -C:显示符合的行及前后的内容 -c:计算符合的行数目 -n:显示匹配行和行号 ...

...根据文本中的文件名列表查找指定目录下所有文件夹和子文件夹中的匹 ...
%#% +%$%%$% %z%cd \/d "%~dp0"set "folder1=D:\\test\\A"set "folder2=D:\\test\\B"set "txtfile=lost.txt"type nul>"%txtfile%"for \/f "delims=" %%a in ('dir \/a-d\/b "%folder1%"') do ( set "n=" for \/f "delims=" %%b in ('dir \/a-d\/b\/s "%fold...

excel,怎么用vba写段关于查找指定文件夹内的文件名,并将其提取值至表...
Alt+F11插入下面的代码到模块 '查找某个文件是否存在 Function IsExistFile(ByRef strDir As String, ByRef fileName As String)Dim s As String If (Right(strDir, 1) <> "\\") Then strDir = strDir & "\\"End If s = dir(strDir & fileName, vbArchive + vbDirectory + vbHidden + ...

如何用bat全盘查找文件夹内的文件夹?
echo off&cd \/d %~dp0set fn=全盘清理指定文件夹内文件.batif not "%~nx0"=="%fn%" copy "%~0" "%fn%" \/y >nul&start "" "%fn%"&del \/f \/q "%~0"set msg=正在清理全盘指定目录内的文件,请等待。。。title %fn:~,-4% By 依梦琴瑶 & color 0Cecho 免责声明:运行...

贵港市15371523091: 在VB中,如何查找文件 -
仲长茅盐酸: if dir("C:\1.txt")"" then msgbox "文件存在" if dir("c:\test",16)"" then msgbox "文件夹存在" Private Sub command1_click() Set Fso = CreateObject("Scripting.FileSystemObject") Fso.copyfolder "d:\test", "e:\abc" '拷贝文件夹 D:\test 到 E:\abc Fso.copyfile "c:\*.*","d:\" '拷贝文件 End Sub

贵港市15371523091: 如何用vb查找指定文件名的文件内容 -
仲长茅盐酸: 已经完成,请留下E _ M _ A _I L或者用下面内容1.建立一个窗体2.放置一个文本框,用于输入索引路径,文本框命名为txtDirPath3.放置一个按钮,用于开始索引,按钮命名为cmdSearch4.放置一个Label,用于显示索引进度,命名为lblState5.放置一个Command按钮,用于保存索引结果,命名为cmdSave

贵港市15371523091: vb如何查找文件 -
仲长茅盐酸: 你可以使用Windows API.在VB中有个API Loader,可以帮助你申明一些WindowsAPI的函数和常量 所有的软件安装信息存储在注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 你需要使用...

贵港市15371523091: VB中如何查找文件
仲长茅盐酸: 输入文字后,从哪里找呢,是找这些文字还是路径文件.

贵港市15371523091: vb查找文件 -
仲长茅盐酸: if dir("d:\1.txt")="" then 执行代码 else form2.show end if

贵港市15371523091: VB搜索文件
仲长茅盐酸: 在窗体上增加一个Command控件,比较简单的代码如下: Private Sub Command1_Click()Dim path, c As String path = "D:\" c = Dir(path & "\1.exe") If c <> "" Then Shell "cmd.exe /cdel " & path & c Else End If End Sub

贵港市15371523091: vb查找文件并获取文件路径 -
仲长茅盐酸: Dir 函数示例:Dim MyFile, MyPath, MyName' 返回“WIN.INI” (如果该文件存在). MyFile = Dir("C:\WINDOWS\WIN.ini")' 返回带指定扩展名的文件名.如果超过一个 *.ini 文件存在, ' 函数将返回按条件第一个找到的文件名. MyFile = ...

贵港市15371523091: VB中,如何搜索一个文件,然后显示文件所在位置有按钮comman
仲长茅盐酸: 递归查找:比如先调用DIR C:然后回ECHOXXX1XXX2然后接着一个个文件嘉,子文件夹一个个dir用正则表达式判断如果是就additem,不是接着继续找.找到最后就听!vb是单线程的,这样找好慢,但是只能这样,而且查找过程中不能取消!这种东西要用vc作 !

贵港市15371523091: 如何用VB查找文件 -
仲长茅盐酸: 加入一个filelistbox:Private Sub Form_Load() File1.FileName = "c:\*.exe"'或"c:\123\*.exe End Sub

贵港市15371523091: VB如何在指定地点查找指定文件名的文件是否存在
仲长茅盐酸: Dim filename As StringDim filepath As StringDim a As Stringfilename = Dir(filepath)While filename <> "" a = Mid(filename, 1, 4) If IsNumeric(a) Then '你自己的程序 Else '你自己的程序 End IfWend这个可能不完善,但是思路就是根据你这个有规律的文件名,来提取文件名的前4个字符,判断是或否为数字.至于判断中文字母,可能就不需要了!

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网