Поиск дисков для текстового файла с точным словом внутри и внести изменения - PullRequest
0 голосов
/ 13 декабря 2018

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

Как выглядит код, найдите файл, но я не могу сохранить имя файла после этого, и, возможно, что-то связано с какой-то попыткой, я вижу, что файл используется (я не уверен, когда онделает это).

Спасибо за любую помощь заранее Panos

Public Class Form1

Dim FileFOund As String

 Private Sub FindFile()

    Dim drives As String() = Directory.GetLogicalDrives()
    Dim tempfile As String = "temp.txt"

    For Each drive As String In drives
        Dim driveFound As String = drive
    If File.Exists(driveFound & tempfile) Then
         Dim lines() As String = File.ReadLines(driveFound & tempfile)
                If lines(1) = "#temp" Then
                    LblFileExists.Text = "Temp found"
                    FileFOund = driveFound & tempfile
                Else
                    LblFileExists.Text = "Temp not found"
                End If
            Else
                LblFileExists.Text = "Temp found"
            End If
        End If
    Next

End Sub

End Class

, а затем мне нужно изменить строку внутри файлаНайдено

Private Sub Button1_MouseClick(sender As Object, e As MouseEventArgs) Handles Button1.Click
If System.IO.File.Exists(fileFound) Then
        Dim lines() As String = IO.File.ReadAllLines(fileFound)
        For i As Integer = 0 To lines.Length - 1
            If lines(i).Contains("Anything") Then
                lines(i) = "to change" 
            End If
        Next
        File.WriteAllLines(fileFound, lines)
        MessageBox.Show("Changes complete!", "Temp")
    Else
        MessageBox.Show("Something Wrong!", "Temp")
    End If

End Sub

Надеюсь понятноза вас еще раз спасибо.

1 Ответ

0 голосов
/ 13 декабря 2018
 Public Class Form1

Dim FileFOund As String

Private Sub FindFile()

    Dim drives As String() = Directory.GetLogicalDrives()

    For Each drive As String In drives
        Dim driveFound As String = drive
    If File.Exists(driveFound & tempfile) Then
         FileFOund = driveFound & tempfile
        End If
    Next
      If File.Exists(driveFound & "temp.txt") Then
Dim lines() As String = Filter(File.ReadAllLines(driveFound & "temp.txt"), "#Temp")
               If UBound(lines) = 0 Then
                    LblFileExists.Text = "Temp found"                        
                Else
                    LblFileExists.Text = "Temp not found"
                End If
            Else
                LblFileExists.Text = "Temp found"
            End If

End Sub

     Private Sub Button1_MouseClick(sender As Object, e As MouseEventArgs) Handles Button1.Click
If System.IO.File.Exists(fileFound) Then
        Dim lines() As String = IO.File.ReadAllLines(fileFound & "temp.txt")
        For i As Integer = 0 To lines.Length - 1
            If lines(i).Contains("Anything") Then
                lines(i) = "to change" 
            End If
        Next
        File.WriteAllLines(fileFound & "temp.txt", lines)
        MessageBox.Show("Changes complete!", "Temp")
    Else
        MessageBox.Show("Something Wrong!", "Temp")
    End If

End Sub

End Class
...