Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2014, 20:31   #1
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию TIdFtpServer.OnStoreFile - Закрыть файл при обрыве соединения..

Всем доброго. Нарвался сегодня на некоторую недоработку в своей программе.
Есть IdFTPServer, который сохраняет файлы примерно так:
Код:
procedure TForm1.FtpServerStoreFile(ASender: TIdFTPServerContext;
  const AFileName: string; AAppend: Boolean; var VStream: TStream);
begin
     if AAppend then begin
      VStream:=TFileStream.Create(AFileName,fmOpenReadWrite);
      VStream.Seek(0,soEnd);
     end else begin
      VStream:=TFileStream.Create(AFileName,fmCreate);
     end;

 end;
В общем штатный хелповский код, ничего особенного.
Проблема в том что если на линии происходит обрыв связи VStream не освобождается, и заливамый файл блокируется, пока программа запущена.
Сегодня так получилось что нужно было заливать при плохом трафике, который постоянно обрывался, и сервер после переконнекта давал ошибку "файл занят". Закрытие сервера позволяло файл удалить.

Отсюда встала задача: При обрыве соединения VStream освобождать, чтоб файл закрывался корректно.

Вопрос: Как рассказать Индейке что файл нужно закрывать в любом случае, докачался он или нет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.10.2014, 20:52   #2
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

где-то штатно должен ерор вылезти где концы и надо резать
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Закрыть файл EXCEL Rolls Общие вопросы Delphi 2 05.11.2013 15:28
Открыть файл, разделить ячейку на 1000, сохранить файл, закрыть файл. Как? Ник Харди Microsoft Office Excel 7 30.01.2012 18:47
Закрыть файл макросом (массив) Lopatin Microsoft Office Excel 5 03.03.2011 20:24
Как закрыть файл при закрытии программы r_yevgeniy Общие вопросы Delphi 3 23.03.2010 11:28
Диалоги открыть/закрыть файл Altera Операционные системы общие вопросы 3 03.12.2008 01:18