vb.net - 拖放文件夹

标签 vb.net

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

这是应用程序的布局 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()

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

    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 。我强烈建议您这样做。]

关于vb.net - 拖放文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36884447/

相关文章:

vb.net - Visual Studio 2010 调试器不再因错误而停止

.net - 条件语句产生与 If Then 不同的结果

c# - 判断是否在IDE中执行的方法?

c# - 是否可以在 ASP.NET 应用程序中打开 Word 文档

vb.net - 在 Visual Basic 2008 中随机生成数字的最快方法是什么?

c# - 我可以重置静态/共享类吗?

.net - 读取 .NET 项目中的文本文件

c# - 如何从 COM 客户端访问基于列表(Of T)的对象

vb.net - 我应该将 DLL 放在哪里?

java - 构造函数调用自身