Как получить доступ к файлу

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

asn
Новичок
Новичок
 
Сообщения: 34
Зарегистрирован: 29.08.2005 (Пн) 8:18

Как получить доступ к файлу

Сообщение asn » 09.09.2006 (Сб) 17:03

Пишу прогу по обработке данных из текстового файла. Проге необходимо только чтение текстового файла (построчное). Открываю и читаю файл таким образом:
Dim fs As System.IO.FileStream = New System.IO.FileStream("C:\TextFile.log", IO.FileMode.Open, IO.FileAccess.Read)
Dim SR As System.IO.StreamReader = New System.IO.StreamReader(fs)
Do Until SR.EndOfStream
msgbox (SR.ReadLine())
Loop
Если файл уже открыт другой программой (например Word), то выскакивает ошибка "The process cannot access the file 'C:\TextFile.log' because it is being used by another process."
Как можно этого избежать (требуется либо получить доступ к файлу для чтения либо перед открытием файла проверить его на возможность доступа.)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 09.09.2006 (Сб) 20:31

А сам факт возникновения ошибки разве не является достаточной проверкой?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 09.09.2006 (Сб) 20:57

Не знаю насколько это правильно... но тем не менее работает )
Код: Выделить всё
  Dim FI As New FileInfo("C:\TextFile.log")
        Dim SR As System.IO.StreamReader = Nothing

        Try
            SR = FI.OpenText()
        Catch EX As IOException
            FI.CopyTo("C:\TextFile.log.BAK", True)
            FI = New FileInfo("C:\TextFile.log.BAK")
            SR = FI.OpenText()
        End Try

        Do Until SR.EndOfStream
            MsgBox(SR.ReadLine())
        Loop

        SR.Close()
        FI.Delete()
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 20

    TopList