使用拖放获取不带文件扩展名的文件名 vb.net

get file name without files extension using drag and drop vb.net

我想将文件拖放到按钮上并将不带扩展名的文件名称存储到文本框。帮助摆脱这个问题。我在这些代码上遇到了一些错误。

Private Sub Button5_DragDrop(sender As Object, e As DragEventArgs)
   _Handles Button5.DragDrop
   Dim files() As String = e.Data.GetData(DataFormats.FileDrop)
   Dim file_name As String = Path.GetFileName(files(0))
   For Each path In files
        TextBox1.Text = (path)
   Next
   TextBox2.Text = files(0)
End Sub

Private Sub Button5_DragEnter(sender As Object, e As DragEventArgs) 
    _Handles Button5.DragEnter
    If e.Data.GetDataPresent(DataFormats.FileDrop) Then
        e.Effect = DragDropEffects.Copy
    End If
End Sub

我觉得你错过了将 AllowDrop 功能设置为 true 还有一个函数可以获取不带扩展名的文件名 "GetFileNameWithoutExtension" 检查下面的代码

Imports System.IO
Public Class Form1

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    Button5.AllowDrop = True
End Sub

Private Sub Button5_DragDrop(sender As System.Object, e As System.Windows.Forms.DragEventArgs) Handles Button5.DragDrop
    Dim files() As String = e.Data.GetData(DataFormats.FileDrop)
    For Each indpath In files
        TextBox1.Text = Path.GetFileNameWithoutExtension(indpath) & vbNewLine & TextBox1.Text
    Next
End Sub

Private Sub Button5_DragEnter(sender As System.Object, e As System.Windows.Forms.DragEventArgs) Handles Button5.DragEnter
    If e.Data.GetDataPresent(DataFormats.FileDrop) Then
        e.Effect = DragDropEffects.Copy
    End If
End Sub
End Class