Получить файлы из каталога (включая все подкаталоги) и открыть файл - PullRequest
0 голосов
/ 21 марта 2019

У меня есть небольшое приложение в VB.NET, которое при нажатии на кнопку DatagriedView должно искать и открывать файл Excel в каталоге с несколькими подкаталогами, упорядоченными по годам (2019 ... 2018 ......).В этих подкаталогах есть несколько исключительных файлов с именами по номерам (5673455.xlsx ..... 11122232.xlsx ...).Имя этого файла должно быть помещено в текстовое поле и при нажатии кнопки должен открываться файл.

Как сделать так, чтобы не было необходимости указывать полное имя файла в текстовом поле иОткрой это?Например, полное имя файла - «23456_B_D.xlsx», а при размещении в текстовом поле только «23456» - файл открывается.Что если файл имеет расширение xls, а не xlsx?

Вот код, который у меня есть.Но я получаю сообщение об ошибке: «Значение типа« 1-мерный массив строк »не может быть преобразовано в« String »

Private Sub DataGridView_descricao_ColumnAdded(sender As System.Object, e As DataGridViewCellEventArgs) _
                                       Handles DataGridView_descricao.CellContentClick
    Dim senderGrid = DirectCast(sender, DataGridView)

    If TypeOf senderGrid.Columns(e.ColumnIndex) Is DataGridViewButtonColumn AndAlso
       e.RowIndex >= 0 Then

        Dim filePaths As String() = Directory.GetFiles("C:\SALES", "*.xlsx", SearchOption.AllDirectories)
        Dim fileName As String = TextBox_sa.Text + ".xlsx"
        System.Diagnostics.Process.Start(Path.Combine(filePaths, fileName))
    End If

End Sub

Спасибо

1 Ответ

0 голосов
/ 21 марта 2019

Я пытался

    Private Sub DataGridView_descricao_ColumnAdded(sender As System.Object, e As DataGridViewCellEventArgs) _
                                       Handles DataGridView_descricao.CellContentClick
    Dim senderGrid = DirectCast(sender, DataGridView)

    If TypeOf senderGrid.Columns(e.ColumnIndex) Is DataGridViewButtonColumn AndAlso
       e.RowIndex >= 0 Then

        Dim filePaths As String() = Directory.GetFiles("C:\SALES", "*.xlsx", SearchOption.AllDirectories)
        Dim fileName As String = TextBox_sa.Text + ".xlsx"

        For Each path As String In filePaths
                Process.Start(New ProcessStartInfo With {
                    .FileName = path,
                    .UseShellExecute = True,
                    .Verb = "open"
                })
            Next
    End If

End Sub

Но это открывает несколько файлов !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...