VB.NET在OpenFileDialog中获取所选文件的文件名 - 没有路径

时间:2013-05-20 16:22:41

标签: vb.net openfiledialog

我正在使用OpenFileDialog打开Excel工作簿,将数据从该工作簿传递到另一个工作簿,然后关闭我通过OpenFileDialog打开的工作簿。我的问题是传递数据...我如何获得我通过OpenFileDialog打开的文件的名称?我不能拥有路径,我只需要带有扩展名的文件名。这是我的代码的一部分

Dim filedialog As OpenFileDialog = New OpenFileDialog()
Dim strFileName As String
                filedialog.Title = "Open File Dialog"
                filedialog.InitialDirectory = "W:\TOM\ERIC\NET Dev"
                filedialog.RestoreDirectory = True
                If filedialog.ShowDialog() = DialogResult.OK Then
                    strFileName = filedialog.FileName
                    System.Diagnostics.Process.Start(strFileName)
                    StatVar.xlApp.Workbooks(StatVar.workbookName).Sheets("Input Form     Info").Range("B4:B204").Value = StatVar.xlApp.Workbooks(strFileName).Sheets("DJA Corp     Use").Range("C2:C202").Value
                    StatVar.xlApp.Workbooks(strFileName).Close(False)
                End If
            Else
                Exit Sub
            End If

我无法将数据从工作簿传递到工作簿,因为strFileName变量包含文件路径。我一直在尝试使用这个函数来返回文件名,但我显然没有足够的经验。任何帮助表示赞赏。

    Public Function FileNameWithoutPath(ByVal FullPath As String) As String

    Return System.IO.Path.GetFileName(FullPath).ToString

    End Function

3 个答案:

答案 0 :(得分:0)

您可能需要将其保留为Process.Start()的完整路径,然后删除路径,使其只是文件名:

            If filedialog.ShowDialog() = DialogResult.OK Then
                strFileName = filedialog.FileName
                System.Diagnostics.Process.Start(strFileName)

                strFileName = System.IO.Path.GetFileName(strFileName)
                StatVar.xlApp.Workbooks(StatVar.workbookName).Sheets("Input Form     Info").Range("B4:B204").Value = StatVar.xlApp.Workbooks(strFileName).Sheets("DJA Corp     Use").Range("C2:C202").Value
                StatVar.xlApp.Workbooks(strFileName).Close(False)
            End If

答案 1 :(得分:0)

您可以尝试filedialog.SafeFileName

获取在对话框中选择的文件的文件名和扩展名。文件名不包含路径。

MSDN link

答案 2 :(得分:0)

获取打开文件对话框的文件名,然后使用System.IO.Path.GetFileName(OpenFileDialog1.FileName)