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

这是应用程序的布局
enter image description here

在我删除文件后(可能是快捷方式,.exe,excel文件,.rar等)
enter image description here

如果我尝试删除文件夹,则可以执行此操作,但是不显示任何内容,也不知道为什么。

这分别是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()


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

    lblName.Text = MeuFicheiro.Name
    lblType.Text = MeuFicheiro.Extension
    lblSize.Text = Math.Round(MeuFicheiro.Length / 1024) & "KB"
    pbIcon.Image = Icon.ExtractAssociatedIcon(MeuFicheiro.FullName).ToBitmap


如果我发表评论,请更改此行代码

如果您可以帮助我解决或尝试解决此问题,我将不胜感激。

MyFile.Extension




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


[似乎您可能没有使用Option Strict On。我强烈建议您这样做。]

09-10 03:07
查看更多