Vb.net 拖放文件夹

Vb.net 拖放文件夹,vb.net,Vb.net,我有一个应用程序,它的简单之处在于将一个文件从我的计算机拖放到应用程序中,然后显示名称、类型、大小、创建时间、修改时间和上次访问。但我意识到它只删除文件,我也希望它删除文件夹 这是应用程序的布局 在我删除一个文件后(可能是一个快捷方式,.exe,excel文件,.rar,…) 如果我试图删除一个文件夹,我可以这样做,但没有显示任何内容,我不明白为什么 这是DragEnter和DragDrop代码 排水剂 If e.Data.GetDataPresent(DataFormats.FileDro

我有一个应用程序,它的简单之处在于将一个文件从我的计算机拖放到应用程序中,然后显示名称、类型、大小、创建时间、修改时间和上次访问。但我意识到它只删除文件,我也希望它删除文件夹

这是应用程序的布局

在我删除一个文件后(可能是一个快捷方式,.exe,excel文件,.rar,…)

如果我试图删除一个文件夹,我可以这样做,但没有显示任何内容,我不明白为什么

这是DragEnter和DragDrop代码

排水剂

If e.Data.GetDataPresent(DataFormats.FileDrop) Then
        e.Effect = DragDropEffects.Copy
    End If
拖拽

Dim file As String = e.Data.GetData(DataFormats.FileDrop)(0)

    MyFile = New FileInfo(file)

    If String.IsNullOrWhiteSpace(MyFile.Extension) Then
        Exit Sub
    End If

    ShowInfoFiles()

    UpdateControls()
经过一些测试,我发现这可能是主要问题。下面的代码是将文件放到私有子ShowInfoFiles()内的标签上后将更新的代码

如果我要修改这行代码

如果你能帮我解决这个问题,我将不胜感激

MyFile.Extension


它只会在调试时显示名称。因此,我假设它可能与扩展名和图标有关,您可以检查是否存在具有被删除实体名称的目录:

Dim item As String = CType(e.Data.GetData(DataFormats.FileDrop), Array).GetValue(0).ToString
If Directory.Exists(item) Then
    ' process item as a directory
Else
    ' process item as a file
End If

[看起来您可能没有使用。我强烈建议您使用。]

但我将在DragDrop或DragEnter上使用该条件?您将在DragDrop处理程序中使用它。此外,当删除目录时,您必须编写不同的代码,例如,您可能希望显示目录中文件的数量及其大小之和。我已经解决了我的问题。我在考虑这个问题,删除文件夹的可能性不是问题,因为我不需要。谢谢你的帮助
MyFile.Name
Dim item As String = CType(e.Data.GetData(DataFormats.FileDrop), Array).GetValue(0).ToString
If Directory.Exists(item) Then
    ' process item as a directory
Else
    ' process item as a file
End If