Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Файл занят другим процессом


Страницы:   1 2

man ©   (2008-06-16 15:04:00) 

Программе время от времени нужно читать данные из файла. При этом иногда выдается ошибка: "Процесс не может получить доступ к файлу, так как он занят другим процессом". В других программах этот файл не открыт. Я подозреваю, что файл может блокировать антивирус. Что мне сделать, чтобы избежать этой ошибки?


Поросенок Винни-Пух   (2008-06-16 18:04:00) [1]

В других программах этот файл не открыт

остается своя собственная программа. она и виновата. она открыла.


Поросенок Винни-Пух   (2008-06-16 17:50:00) [2]

в общем так.
файл твой занят и это правда.
и на этом все.


ciborg   (2008-06-16 17:47:00) [3]

Так я же сначала читаю из файла

 vStream := TFileStream.Create(FileName, fmOpenRead);
 vList := TStringList.Create;
 try
   vList.LoadFromStream(vStream);
   vList.Sorted := False;

   for i := vStartDict + 1 to vEndDict - 1 do
   begin
     ...
     Add(vWord);
   end;
 finally
   vStream.Free;
   vList.Free;
 end;

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


Поросенок Винни-Пух   (2008-06-16 17:41:00) [4]

и что ты собрался читать из файла при таком раскладе:
vStream := TFileStream.Create(FileName, fmCreate);


ciborg   (2008-06-16 17:39:00) [5]


> автор парит мозг окружающим.

Может и парю, но только по незнанию и в первую очередь себе.


Поросенок Винни-Пух   (2008-06-16 17:22:00) [6]

автор парит мозг окружающим.


clickmaker   (2008-06-16 17:22:00) [7]

> [25] ciborg   (16.06.08 17:14)

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


Поросенок Винни-Пух   (2008-06-16 17:16:00) [8]

vStream := TFileStream.Create(FileName, fmCreate);

и это для чтения время от времени некоторых данных?


Поросенок Винни-Пух   (2008-06-16 17:14:00) [9]

а ты чего хотел?
волшебства?


ciborg   (2008-06-16 17:14:00) [10]


> Поросенок Винни-Пух ©

Какая разница, все равно сообщение выдается.


Поросенок Винни-Пух   (2008-06-16 17:11:00) [11]

try
vStream := TFileStream.Create(FileName, fmCreate);
......
except
on E:Exception do ShowMEssage('ой, мама!'#13#10 + E.Message)
end


ciborg   (2008-06-16 17:10:00) [12]


> Milk   (16.06.08 17:05) [21]
> Автор пока не ответил на главный вопрос:
> > clickmaker ©   (16.06.08 15:21) [5]
>
> > Что за файл, что и зачем из него читать, почему его может
>
> > открыть кто-то еще?..
> Иначе сложно о чем-то предполагать


Это текстовый файл, в котором я храню разную справочную информацию.

Я ошибся, я открываю его не для чтения, а для записи
 vStream := TFileStream.Create(FileName, fmCreate);
 vList := TStringList.Create;
 try
   for i := 0 to Count - 1 do
   begin
     ...
     vList.Add(vStr);
   end;
   vList.SaveToStream(vStream);
 finally
   vStream.Free;
   vList.Free;
 end;


Riply   (2008-06-16 17:08:00) [13]

> [20] Поросенок Винни-Пух ©   (16.06.08 17:00)
> .... и делаем это только когда программа запущена не дома

Ну почему же ? Один из многих вариантов реализации:
дома мы нажимаем кнопки программы в "правильной последовательности",
а не дома в "неправильной" :)


Milk   (2008-06-16 17:05:00) [14]

Автор пока не ответил на главный вопрос:
> clickmaker ©   (16.06.08 15:21) [5]

> Что за файл, что и зачем из него читать, почему его может
> открыть кто-то еще?..

Иначе сложно о чем-то предполагать


Поросенок Винни-Пух   (2008-06-16 17:00:00) [15]

.... и делаем это только когда программа запущена не дома


Riply   (2008-06-16 16:56:00) [16]

> [18] Anatoly Podgoretsky ©   (16.06.08 16:45)
> Как открываешь, есть подозрение, что неправильно.

Исходя из фразы автора: "Программе время от времени нужно читать данные из файла"
добавлю, что "меня терзают смутные сомнения" что мы не закрываем за собой Handl`ы :)


Anatoly Podgoretsky   (2008-06-16 16:45:00) [17]

Как открываешь, есть подозрение, что неправильно.


Плохиш   (2008-06-16 16:44:00) [18]


> man   (16.06.08 15:04)  
> Программе время от времени нужно читать данные из файла.

Открывай файл не ексключиво и только для чтения.


Поросенок Винни-Пух   (2008-06-16 15:59:00) [19]

разумеется.


ciborg   (2008-06-16 15:59:00) [20]

В каком случае антивирускик может заблокировать файл?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо