2016-01-31 1 views
1

Заглавие гласит все. Мне просто нужно получить имя файла, которое перетаскивается в форму самостоятельно и путь файла (без имени) в отдельные переменные.Как получить только имя файла и только путь отдельно в DragDrop в 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 (ТЭП))". Я не хочу этого. Мне нужен только путь. Я также хочу имя, но просто не с этим путем. Я хочу, чтобы они разделились.

+0

код будет хорошим стартом мы не против читателей. Пожалуйста, обновите сообщение с соответствующим кодом, который не работает, и где вы застряли. Im 110% положительное мы можем помочь, если вы поможете нам в предоставлении кода ... – Codexer

+0

@Codexer Done! :) – Wolfie

ответ

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()

+0

Ах, вот и все! Фантастика! Спасибо огромное! – Wolfie