获取完整路径不使用文件对话框

时间:2013-09-23 22:21:07

标签: vb.net visual-studio-2012

我有以下代码:

 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()等工作,只有这一个没有点击确定。

2 个答案:

答案 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

  

文件名包括文件路径和扩展名。如果未选择任何文件,则此方法返回空字符串(“”)。