Imports System.IO
Imports System.Threading
Imports System.Text.RegularExpressions
Imports System.Runtime.InteropServices
Public Class Form1
Public th1 As Thread
Dim imlist As New ImageList
Dim mllist As New List(Of String)
Dim starTime As DateTime
Dim r As Regex
Private Sub Form1_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed
If th1 IsNot Nothing Then
th1.Abort()
End If
End Sub
Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
Dim MyDirber As String() = Directory.GetLogicalDrives()
TextBox.CheckForIllegalCrossThreadCalls = False
RadioButton.CheckForIllegalCrossThreadCalls = False
DateTimePicker.CheckForIllegalCrossThreadCalls = False
ListView.CheckForIllegalCrossThreadCalls = False
CheckBox.CheckForIllegalCrossThreadCalls = False
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
If RadioButton1.Checked = True Then
If FolderBrowserDialog1.ShowDialog <> Windows.Forms.DialogResult.OK Then
MessageBox.Show("请选择你要搜索的目录", "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
Else
MsgBox("搜索目录为" & FolderBrowserDialog1.SelectedPath, MsgBoxStyle.Information)
End If
End If
If TextBox1.Text = "" AndAlso CheckBox2.Checked = True Then
MessageBox.Show("请输入要查找文件名", "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error)
Else
If RadioButton3.Checked = False Then
r = New Regex(TextBox1.Text)
End If
th1 = New Thread(AddressOf sousuo)
th1.IsBackground = True
kaishi()
th1.Start()
End If
End Sub
Private Sub ListView1_MouseDoubleClick1(sender As Object, e As MouseEventArgs) Handles ListView1.MouseDoubleClick
Try
Diagnostics.Process.Start(mllist(ListView1.SelectedIndices.Item(0)))
Catch
End Try
End Sub
Public Sub ProceseDirectory(targetDirectory As String, selectkey As String)
Try
For Each fileName As String In Directory.GetFiles(targetDirectory)
Label5.Text = fileName
If CheckBox2.Checked = True Then
Dim file As String = fileName
If CheckBox4.Checked = False Then
file = finename(fileName)
End If
If CheckBox3.Checked = False Then
file = UCase(file)
selectkey = UCase(selectkey)
End If
If RadioButton3.Checked = True Then
If CheckBox5.Checked = False Then
If InStr(file, selectkey) <= 0 Then
Continue For
End If
Else
If (file Like "*" & selectkey & "*") = False Then
Continue For
End If
End If
ElseIf r.Match(file).Length <> file.Length Then
Continue For
End If
End If
If CheckBox1.Checked = True Then
If DateTimePicker2.Value.Date.CompareTo(System.IO.File.GetLastAccessTime(fileName)) <= 0 OrElse DateTimePicker1.Value.Date.CompareTo(System.IO.File.GetLastAccessTime(fileName)) >= 0 Then
Continue For
End If
End If
ProceseFile(fileName)
Next
For Each subdirectory As String In Directory.GetDirectories(targetDirectory)
ProceseDirectory(subdirectory, selectkey)
Next
Catch
End Try
End Sub
Public Sub ProceseFile(path As String)
imlist.Images.Add(GetItemBitmap.GetIcon(path))
Dim suo As Integer = ListView1.Items.Count
ListView1.SmallImageList = imlist
ListView1.Items.Add(finename(path))
mllist.Add(path)
ListView1.Items.Item(suo).ImageIndex = suo
Dim fi As New FileInfo(path)
ListView1.Items.Item(suo).SubItems.Add(fi.Length)
ListView1.Items.Item(suo).SubItems.Add(File.GetLastAccessTime(path))
End Sub
Private Sub sousuo()
starTime = Now
If RadioButton1.Checked = True Then
ProceseDirectory(FolderBrowserDialog1.SelectedPath, TextBox1.Text)
Else
For Each DirName As String In System.IO.Directory.GetLogicalDrives()
ProceseDirectory(DirName, TextBox1.Text)
Next
End If
jieshu()
th1.Abort()
End Sub
Function finename(ByVal x As String) As String
Return Strings.Right(x, x.Length - InStrRev(x, "\"))
End Function
Function finelj(ByVal x As String) As String
Return Strings.Left(x, InStrRev(x, "\"))
End Function
Sub kaishi()
GC.Collect()
ListView1.Items.Clear()
mllist.Clear()
imlist.Images.Clear()
Button1.Enabled = False
GroupBox1.Enabled = False
GroupBox2.Enabled = False
End Sub
Sub jieshu()
Label5.Text = String.Format("一共用时{0}秒!", Now.Subtract(starTime).TotalSeconds)
If ListView1.Items.Count > 0 Then
MessageBox.Show("已全部搜索完毕!!", "恭喜!", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Else
MessageBox.Show("查无此文件", "悲剧!", MessageBoxButtons.OK, MessageBoxIcon.Warning)
End If
Button1.Enabled = True
GroupBox1.Enabled = True
GroupBox2.Enabled = True
End Sub
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked = True Then
DateTimePicker1.Enabled = True
DateTimePicker2.Enabled = True
Label1.Enabled = True
Else
DateTimePicker1.Enabled = False
DateTimePicker2.Enabled = False
Label1.Enabled = False
End If
End Sub
Private Sub CheckBox2_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox2.CheckedChanged
If CheckBox2.Checked = True Then
RadioButton3.Enabled = True
RadioButton4.Enabled = True
CheckBox3.Enabled = True
CheckBox4.Enabled = True
CheckBox5.Enabled = True
Else
RadioButton3.Enabled = False
RadioButton4.Enabled = False
CheckBox3.Enabled = False
CheckBox4.Enabled = False
CheckBox5.Enabled = False
End If
End Sub
Private Sub CheckBox4_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox4.CheckedChanged
If CheckBox3.Checked = True OrElse CheckBox4.Checked = True OrElse CheckBox5.Checked = True Then
RadioButton4.Enabled = False
RadioButton3.Checked = True
Else
RadioButton4.Enabled = True
End If
End Sub
Private Sub CheckBox3_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox3.CheckedChanged
If CheckBox3.Checked = True OrElse CheckBox4.Checked = True OrElse CheckBox5.Checked = True Then
RadioButton4.Enabled = False
RadioButton3.Checked = True
Else
RadioButton4.Enabled = True
End If
End Sub
Private Sub CheckBox5_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox5.CheckedChanged
If CheckBox3.Checked = True OrElse CheckBox4.Checked = Tru
VB.NET下实现全硬盘文件快速查找
3星 · 超过75%的资源 需积分: 21 180 浏览量
2012-10-30
01:50:14
上传
评论 2
收藏 3KB ZIP 举报
Tanaer
- 粉丝: 2
- 资源: 9
最新资源
- 基于yolov5识别算法实现的DNF自动脚本源码.zip
- 基于Python实现的自动化办公项目.zip
- 基于python实现的基于PyQt5和爬虫的小说阅读系统.zip
- 机械设计整经机上纱自动化sw20非常好的设计图纸100%好用.zip
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
前往页