Выберите папку, найдите конкретный тип файла и, если нет, напишите в текстовое поле.

Я разрабатываю программу для поиска файлов определенного типа (в одной папке существует только один из них). Я выбираю папку, проверяю ее на предмет типа файла в случае, если он находит потоковый файл и записывает результат запроса в текстовое поле.

Это то, что я получил так далеко:

For Each file1 In IO.Directory.GetFiles(folderA, file_A)
            Using fich_time As New StreamReader(file1)
                line = fich_time.ReadLine


                Try
                    myStream_time = file1.OpenFile()
                    If (myStream_time IsNot Nothing) Then

                        line = fich_time.ReadLine

                        While Not fich_time.EndOfStream

                            If line.Contains(" CPU Time for A Analysis") Then

                                If line.Contains("sec") = True Then
                                    txt_A.Text = line
                                    txt_A.Text = Replace$(txt_A.Text, Space(1), Space(0))
                                    txt_A.Text = Regex.Replace(txt_A.Text, "[^0-9.]", "")

                                Else
                                    txt_A.Text = line
                                    txt_A.Text = Replace$(txt_A.Text, Space(1), Space(0))
                                    txt_A.Text = Regex.Replace(txt_A.Text, "[^0-9.]", "")
                                    txt_A.Text = txt_A.Text * 3600

                                End If
                            End If
                        End While
                    End If
                Finally

                End Try

            End Using
        Next 

Основная ошибка в том, что метод OpenFile является членом строки, насколько я знаю, но какую функцию я должен использовать, чтобы эта работа работала??

С наилучшими пожеланиями Андре

1 ответ

Попробуйте это и не забудьте закрыть файл

    For Each file1 In IO.Directory.GetFiles(folderA, file_A)
        Using fich_time As New StreamReader(file1)
            Try
                While Not fich_time.EndOfStream
                    line = fich_time.ReadLine
                    If line.Contains(" CPU Time for A Analysis") Then
                        If line.Contains("sec") = True Then
                            txt_A.Text = line
                            txt_A.Text = Replace$(txt_A.Text, Space(1), Space(0))
                            txt_A.Text = Regex.Replace(txt_A.Text, "[^0-9.]", "")
                        Else
                            txt_A.Text = line
                            txt_A.Text = Replace$(txt_A.Text, Space(1), Space(0))
                            txt_A.Text = Regex.Replace(txt_A.Text, "[^0-9.]", "")
                            txt_A.Text = txt_A.Text * 3600
                        End If
                    End If
                End While
            Catch ex As Exception
                MsgBox(ex.Message)
            Finally
                fich_time.Close()
            End Try
        End Using
    Next
Другие вопросы по тегам