Vb.net 将显示目录的拖放应用程序转换为显示哈希
我无法将此代码转换为允许我将文件放入我的应用程序中,并且我的应用程序会创建一个消息框,显示其md5哈希代码。目前,我有代码提供我插入的文件的目录Vb.net 将显示目录的拖放应用程序转换为显示哈希,vb.net,drag-and-drop,md5,Vb.net,Drag And Drop,Md5,我无法将此代码转换为允许我将文件放入我的应用程序中,并且我的应用程序会创建一个消息框,显示其md5哈希代码。目前,我有代码提供我插入的文件的目录 Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.AllowDrop = True End Sub Private Sub Form1_Dra
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.AllowDrop = True
End Sub
Private Sub Form1_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Me.DragDrop
Dim files() As String = e.Data.GetData(DataFormats.FileDrop)
For Each path In files
MsgBox(path)
Next
End Sub
Private Sub Form1_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Me.DragEnter
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.Copy
End If
End Sub
End Class
似乎您拥有所需的大部分代码,只需要一个函数来计算md5,然后您就可以将其插入到消息框中:
MsgBox(ComputeMD5Hash(path))
这里是函数,主要取自此函数
如果您想删除一个目录并获取其中所有文件的哈希值,首先需要检查您是在处理文件还是文件夹,如果它是一个文件夹,则循环遍历其中所有文件并为每个文件调用函数,这将使您的DragDrop事件处理程序看起来像这样,还有一个额外的好处,就是可以同时处理文件和文件夹
Private Sub Form1_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Me.DragDrop
Dim files() As String = e.Data.GetData(DataFormats.FileDrop)
For Each path In files
If IO.File.GetAttributes(path) = FileAttribute.Directory Then
'Dealing with a Directory
Dim di As New IO.DirectoryInfo(path)
Dim fiArr As IO.FileInfo() = di.GetFiles()
Dim fri As IO.FileInfo
For Each fri In fiArr
MessageBox.Show(fri.FullName & " " & ComputeMD5Hash(fri.FullName))
Next fri
Else
'Dealing with a File
MessageBox.Show(path & " " & ComputeMD5Hash(path))
End If
Next
End Sub
任何想法,我似乎都想不出来。
Private Sub Form1_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Me.DragDrop
Dim files() As String = e.Data.GetData(DataFormats.FileDrop)
For Each path In files
If IO.File.GetAttributes(path) = FileAttribute.Directory Then
'Dealing with a Directory
Dim di As New IO.DirectoryInfo(path)
Dim fiArr As IO.FileInfo() = di.GetFiles()
Dim fri As IO.FileInfo
For Each fri In fiArr
MessageBox.Show(fri.FullName & " " & ComputeMD5Hash(fri.FullName))
Next fri
Else
'Dealing with a File
MessageBox.Show(path & " " & ComputeMD5Hash(path))
End If
Next
End Sub