急,解决文件/文件夹是否存在的问题?

xqw 2003-08-20 05:47:52
请问:我要判断一台电脑中某个文件或文件夹是否存在,事先不知道在哪个路径下。
类似于windows系统中的搜索“文件或文件夹”,该怎么写?
...全文
53 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xqw 2003-08-20
  • 打赏
  • 举报
回复
要知道,要找的文件放在哪个目录/路径以及存在与否都不知道?
flxa 2003-08-20
  • 打赏
  • 举报
回复
可以用VBScript 中的FSO对象啊!

可以用他查找!!!!!
Wang_xiaoni 2003-08-20
  • 打赏
  • 举报
回复
查查API里的findfile,findfirstfile
bydisplay 2003-08-20
  • 打赏
  • 举报
回复
首先,进入VB中,建立一个新的表单。在表单上建立一个驱动器列表框(DriveList),一个目录列表框(FolderList),一个检查框(SubCheck),一个ListView控件(FileList),两个文本框(FileName,FileSize)和两个按钮(cmdSearch,cmdExit)。需要注意的是ListView 控件是 Mscomctl.ocx 文件中一组 ActiveX 控件的一部分。若要在应用程序中使用 ListView 控件,必须将 Mscomctl.ocx 文件添加到工程中。选择ListView控件,点击鼠标右键,在弹出菜单中选择“属性”。在属性窗口的“列首”页中设置将要显示的列,连续按动“插入列”5次。排列好各控件的位置,然后加入以下代码:
Option Explicit
Dim FileSys As Scripting.FileSystemObject

Private Sub CmdExit_Click()
End
End Sub

Private Sub DriveList_Change()
FolderList.Path = DriveList
End Sub

Private Sub Form_Load()
Dim I As Integer
Set FileSys = New Scripting.FileSystemObject
FolderList.Path = Left(DriveList.Drive, 2) & "\"
With FileList.ColumnHeaders.Item(1)
.Alignment = lvwColumnLeft
.Text = "文件名"
.Width = 2000
End With
With FileList.ColumnHeaders.Item(2)
.Alignment = lvwColumnRight
.Text = "大小(KB)"
.Width = 1500
End With
With FileList.ColumnHeaders.Item(3)
.Alignment = lvwColumnLeft
.Text = "类型"
.Width = 1500
End With
With FileList.ColumnHeaders.Item(4)
.Alignment = lvwColumnLeft
.Text = "路径"
.Width = 2000
End With
With FileList.ColumnHeaders.Item(5)
.Alignment = lvwColumnLeft
.Text = "修改时间"
.Width = 2000
End With
End Sub

Private Sub Form_Unload(Cancel As Integer)
Set FileSys = Nothing
End Sub

Private Sub cmdSearch_Click()
Dim SFolderStart As Scripting.Folder
Set SFolderStart = FileSys.GetFolder(FolderList.Path)
FileList.ListItems.Clear
AddFiles SFolderStart
If FileList.ListItems.Count = 0 Then MsgBox _
"没找到任何符合条件的文件!",vbOKOnly + vbInformation, "提示信息"
End Sub

Private Sub AddFiles(SFolderSearch As Scripting.Folder)
Dim SFolder As Scripting.Folder
Dim SFile As Scripting.File
Dim sngFileSize As Single
Dim lngSize As Long
Dim Itm As ListItem
If SubCheck.Value = 1 Then
If SFolderSearch.SubFolders.Count Then
For Each SFolder In SFolderSearch.SubFolders
AddFiles SFolder
Next SFolder
End If
End If
sngFileSize = FileSize * 1000
For Each SFile In SFolderSearch.Files
With SFile
If .Size >= sngFileSize And IIf(FileName.Text < > "", _
InStr(.Name, FileName.Text) > 0, True) Then
Set Itm = FileList.ListItems.Add(Text:=.Name)
lngSize = .Size / 1000
With Itm
.SubItems(1) = Format(lngSize, "#,###")
.SubItems(2) = SFile.Type
.SubItems(3) = SFile.ParentFolder
.SubItems(4) = SFile.DateLastModified
End With
End If
End With
Next SFile
Set Itm = Nothing
Set SFolder = Nothing
End Sub
运行后,选择相应目录,再在FileName文本框中输入要查找的文件名或文件名的一部分,然后再在FileSize文本框中输入文件的大小,按下搜索按钮即可搜索到相应文件。当然,这只是个功能较为简单的文件搜索器,有兴趣的读者可以使用Scripting.FileSystemObject对象的属性为其添加一些更为有用的功能。
bydisplay 2003-08-20
  • 打赏
  • 举报
回复
想想

1,066

社区成员

发帖
与我相关
我的任务
社区描述
VB 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧