如何在VB.net中的DragDrop中单独获取文件名和路径?

时间:2016-01-31 04:18:31

标签: vb.net

标题说明了一切。我只需要将文件的名称单独拖入表单并将文件的路径(不带名称)转换为单独的变量。

代码:

Private Sub Form1_DragDrop(sender As System.Object, e As System.Windows.Forms.DragEventArgs) Handles Me.DragDrop
    Dim files() As String = e.Data.GetData(DataFormats.FileDrop)
    Dim theFiles() As String = CType(e.Data.GetData("FileDrop", True), String())
    Dim tep As Integer = 0
    For Each path As String In files
        If e.Data.GetDataPresent(DataFormats.FileDrop) Then

            ' Assign the files to an array.
            Dim MyFiles As String() = DirectCast(e.Data.GetData(DataFormats.FileDrop), String())

            ' Display the file Name
            MessageBox.Show(MyFiles(tep))
            tep += 1
        End If
    Next

它为我提供了名为“MessageBox.show(MyFiles(tep))”的路径。我不希望这样。我只想要这条路。我也想要这个名字,但不是路径。我希望他们分开。

1 个答案:

答案 0 :(得分:2)

您可以使用System.IO命名空间来分隔路径和文件名。

Path.GetDirectoryName()方法将为您提供指定文件或目录的父目录路径,Path.GetFileName()方法将为您提供指定文件的名称和扩展名。

Dim FilePath As String = IO.Path.GetDirectoryName(MyFiles(tep))
Dim FileName As String = IO.Path.GetFileName(MyFiles(tep))

MessageBox.Show(FilePath)
MessageBox.Show(FileName)

代码将产生例如:

C:\Users\Vincent\Desktop

Open me.txt

了解详情:

MSDN - Path.GetDirectoryName()

MSDN - Path.GetFileName()