我有以下代码:
Imports System.IO
Public Class Form2
Dim fileName As String = "C:\Users\Sam\Desktop\Visual Basic\Test\test.txt"
Dim pathname As String = "C:\Users\Sam\Desktop\Visual Basic\Test\test.txt"
Dim result As String
Private Sub btnBrowse_Click(sender As Object, e As EventArgs) Handles btnBrowse.Click
fdTxtFile.InitialDirectory = "C:\Users\Sam\Desktop\Visual Basic\Test"
fdTxtFile.ShowDialog()
' fdTxtFile.
End Sub
Private Sub fdTxtFile_FileOk(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles fdTxtFile.FileOk
Dim strm As System.IO.Stream
result = Path.GetFullPath(fdTxtFile.ToString)
tbFileLocation.Text = result
strm = fdTxtFile.OpenFile()
' tbFileLocation.Text =
End Sub
End Class
但是,当使用Path.GetFullPath()时,它打开文件对话框,我选择文件,ok按钮什么也不做,没有错误。我试图让它显示所选文件的完整文件路径到文本框,但这是困扰我。其他功能,如GetFileName()等工作,只有这一个没有点击确定。
答案 0 :(得分:1)
无需使用FileOk
事件,您只需等待ShowDialog()
调用返回并读取存储在FileName
属性中的值即可。如果用户按下确定按钮,ShowDialog returns的值等于DialogResult.OK
枚举值,您可以从那里开始工作。此外,OpenFileDialog的FileName属性包含完整的文件名,因此无需使用GetFullPath。
Private Sub btnBrowse_Click(sender As Object, e As EventArgs) Handles btnBrowse.Click
fdTxtFile.InitialDirectory = "C:\Users\Sam\Desktop\Visual Basic\Test"
If DialogResult.OK = fdTxtFile.ShowDialog() Then
Dim strm As System.IO.Stream
result = fdTxtFile.FileName
tbFileLocation.Text = result
....
End If
End Sub
作为旁注,您使用GetFullPath的方式似乎是错误的。 GetFullPath需要部分文件名,并将OpenFileDialog转换为字符串不会产生文件名
答案 1 :(得分:0)
如果是FileOk
event,请使用属性FileName
访问所选文件。如果您已将Multiselect
设置为True
,请改用FileNames
。
文件名包括文件路径和扩展名。如果未选择任何文件,则此方法返回空字符串(“”)。