2013-09-23 2 views
0

작동하지하기 나는 다음과 같은 코드가 있습니다) (Path.GetFullPath를 사용하는 경우fullpath에 파일 대화 상자

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 

그러나, 그것은 파일 대화 상자를 엽니 다, 내가 파일을 선택하고 확인 버튼이 아무것도하지 않는를, 오류없이. 나는 그것이 텍스트 파일에 선택한 파일의 전체 파일 경로를 표시 할 수 있도록 노력하고있어, 그러나 이것은 나를 괴롭 히고있다. GetFileName() 등의 다른 함수가 작동하지만이 함수는 OK를 클릭해도 아무런 변화가 없습니다.

+0

어떤 종류의 컨트롤 fdTxtFile입니까? – Steve

답변

2

, 당신은 단순히 ShowDialog() 호출의 반환을 기다린 후 FileName 속성에 저장된 값을 읽을 수 있습니다. 사용자가 확인 버튼을 누르면 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

FileOk event 인 경우 FileName 속성을 사용하여 선택한 파일에 액세스하십시오. MultiselectTrue으로 설정 한 경우 FileNames을 대신 사용하십시오.

파일 이름에는 파일 경로와 확장명이 모두 포함됩니다. 파일을 선택하지 않은 경우이 메서드는 빈 문자열 ("")을 반환합니다. FileOk 이벤트를 사용할 필요가 없습니다