Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не срабатывает код из файла .dpr, иногда 
:(
    Опции темы
Croaked
Дата 22.8.2008, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 22.8.2008

Репутация: нет
Всего: нет



Функция RemoveAllDir(temp_dir) удаляет временную директорию (в которой обрабатываются файлы: удаляются, перемещаются, пакуются).
Если приложение падает, то RemoveAllDir не отрабатывает. Как это исправить?

Код

// Файл TMP_Creator.dpr
program TMP_Creator;

uses
  Forms,
  TMPCreator in 'TMPCreator.pas' {Paths_Form1},
  CheckingSum in 'CheckingSum.pas',
  FileList in 'FileList.pas' {Filelist_Form3},
  TMP_Set_Params in 'TMP_Set_Params.pas' {Params_Form2},
  Final_Dlg in 'Final_Dlg.pas' {Final_Form4},
  TMP_Creating in 'TMP_Creating.pas',
  CopyFile in 'CopyFile.pas',
  Envmnt_Var_Work in 'Envmnt_Var_Work.pas',
  RemoveWholeDir in 'RemoveWholeDir.pas',
  ZLibAdvTools in 'ZLibAdvTools.pas',
  FolderActions in 'FolderActions.pas',
  CrtProcess in 'CrtProcess.pas',
  Lib in 'Lib.pas',
  QuickView in 'QuickView.pas' {QuickView_Form},
  AuthorInf in 'AuthorInf.pas';

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TPaths_Form1, Paths_Form1);
  Application.CreateForm(TFilelist_Form3, Filelist_Form3);
  Application.CreateForm(TParams_Form2, Params_Form2);
  Application.CreateForm(TFinal_Form4, Final_Form4);
  Application.CreateForm(TQuickView_Form, QuickView_Form);
  Application.Run;
  CheckBoxes := nil;
  RemoveAllDir(temp_dir);
end.


Код

// Функция удаляет всю директорию (файлы, папки и саму директорию)
function RemoveAllDir(sDir : String) : Boolean;
var
  iIndex : Integer;
  SearchRec : TSearchRec;
  sFileName : String;
begin
  try
    if DirectoryExists(sDir) then begin
      CPRun('cmd /c rmdir /S /Q "' + sDir + '"');
      Result := True;
    end;
  except
    ShowMessage('Удаление каталога вызвало ошибку ' + IntToStr(GetLastError));
    Result := False;
  end
end;

PM MAIL   Вверх
Snowy
Дата 22.8.2008, 10:47 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 31
Всего: 484



Сделать так, чтоб приложение не падало.
PM MAIL   Вверх
MetalFan
Дата 22.8.2008, 11:14 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 22
Всего: 128



лучше конечно найти и локализовать причину падения. но в худшем случае спасет try..finally наверное


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
remax
Дата 24.8.2008, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент
**


Профиль
Группа: Участник Клуба
Сообщений: 686
Регистрация: 7.4.2002
Где: Украина, Харьков

Репутация: нет
Всего: 5



или try...except  smile 


--------------------
Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку
PM MAIL ICQ Skype   Вверх
ama_kid
Дата 24.8.2008, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 9
Всего: 95



... если только причина падения не в том, что нерадивый юзер открыл диспетчер задач и сделал "Завершить процесс".


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0507 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.