在拖放时检索 FTP 文件的完整路径?
Retrieve full path of FTP file on drag & drop?
从 Windows 资源管理器浏览的 Ftp 文件夹中拖动文件时,我可以使用下一个代码读取文件名。
但是有没有办法检索完整的 Ftp 路径?
Private Sub DataGridView1_DragDrop(sender As Object, e As System.Windows.Forms.DragEventArgs) Handles DataGridView1.DragDrop
Dim filename As String = ""
If e.Data.GetDataPresent("UniformResourceLocator") Then
Dim ioStream As System.IO.Stream = DirectCast(e.Data.GetData("FileGroupDescriptor"), System.IO.Stream)
Dim contents As Byte() = New [Byte](511) {}
ioStream.Read(contents, 0, 512)
ioStream.Close()
Dim sb As New System.Text.StringBuilder()
Dim i As Integer = 76
While contents(i) <> 0
sb.Append(CChar(ChrW(contents(i))))
i += 1
End While
filename = sb.ToString()
End If
End Sub
如果丢弃的数据包含 UniformResourceLocator 格式,您可以从中获取整个 URL,例如:
Private Sub Form1_DragDrop(sender As Object, e As System.Windows.Forms.DragEventArgs) Handles Me.DragDrop
If e.Data.GetDataPresent("UniformResourceLocator") Then
Dim URL As String = New IO.StreamReader(CType(e.Data.GetData("UniformResourceLocator"), IO.MemoryStream)).ReadToEnd
End If
End Sub
它首先检查是否存在 UniformResourceLocator 格式,如果存在,则从 e(drag/drop 参数)获取数据,将其转换为 MemoryStream,并将其传递给新的 StreamReader(对于易于阅读),然后执行 .ReadToEnd() 以获取整个字符串。
从 Windows 资源管理器浏览的 Ftp 文件夹中拖动文件时,我可以使用下一个代码读取文件名。 但是有没有办法检索完整的 Ftp 路径?
Private Sub DataGridView1_DragDrop(sender As Object, e As System.Windows.Forms.DragEventArgs) Handles DataGridView1.DragDrop
Dim filename As String = ""
If e.Data.GetDataPresent("UniformResourceLocator") Then
Dim ioStream As System.IO.Stream = DirectCast(e.Data.GetData("FileGroupDescriptor"), System.IO.Stream)
Dim contents As Byte() = New [Byte](511) {}
ioStream.Read(contents, 0, 512)
ioStream.Close()
Dim sb As New System.Text.StringBuilder()
Dim i As Integer = 76
While contents(i) <> 0
sb.Append(CChar(ChrW(contents(i))))
i += 1
End While
filename = sb.ToString()
End If
End Sub
如果丢弃的数据包含 UniformResourceLocator 格式,您可以从中获取整个 URL,例如:
Private Sub Form1_DragDrop(sender As Object, e As System.Windows.Forms.DragEventArgs) Handles Me.DragDrop
If e.Data.GetDataPresent("UniformResourceLocator") Then
Dim URL As String = New IO.StreamReader(CType(e.Data.GetData("UniformResourceLocator"), IO.MemoryStream)).ReadToEnd
End If
End Sub
它首先检查是否存在 UniformResourceLocator 格式,如果存在,则从 e(drag/drop 参数)获取数据,将其转换为 MemoryStream,并将其传递给新的 StreamReader(对于易于阅读),然后执行 .ReadToEnd() 以获取整个字符串。