Использование StreamReader для определения, был ли изменен файл

#vb.net #visual-studio-2010

#vb.net #visual-studio-2010

Вопрос:

Мне любопытно. Если я использую комбинацию streamreader и streamwriter, есть ли способ записать поток, только если файл X был изменен?

Возможно, этот код сконструирован не лучшим образом. Это прилагается, чтобы помочь ответить на мои вопросы.

 sCommand = "whoami.exe >> C:DesktopTest.txt"

Using swrr As New StreamWriter(File.Open(ErrorLog, FileMode.OpenOrCreate))
            For Each strUserName As String In strLines
                Shell("cmd.exe /c" amp; sCommand, AppWinStyle.Hide, True, )
                'command Cannot Execute, List Why and Move onto Next Command
                Using sr As New StreamReader(File.Open(Test.txt, FileMode.OpenOrCreate))
                    If '''??File has been modifed??''''' Then swrr.WriteLine("PASS") Else swrr.WriteLine("FAIL")
                End Using
            Next
  End Using
  

Ответ №1:

Вы можете вызвать File.ReadAllText(path) , чтобы получить строку, содержащую текст.

Затем вы можете сравнить новую строку со старой.


Правильный способ прочитать выходные данные команды — использовать Process класс с RedirectStandardOutput .
Затем вы можете создать StreamReader around StandardOutput и вызвать ReadToEnd() .