Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: CL | DM;

Вниз

Удаление временных dbf-файлов   Найти похожие ветки 

 
Tumcoat ©   (2003-10-16 04:39) [0]

Всем здрасьте.
Понимаю, вопрос возможно ламерский, но никак не могу найти, как програмно удалять временные dbf-файлы?
Заранее спасиба.


 
Ильш ©   (2003-10-16 06:13) [1]

Что за такие "временные" dbf-файлы??? Это ваше изобретение? Поконкретнее пожалуйста.


 
Tumcoat ©   (2003-10-16 07:29) [2]

Стандартные временные файлы dbase-а, формат: _qsql*.dbf, где вместо * трехзначный номер. Появляются во время работы программы.


 
gek ©   (2003-10-16 07:42) [3]

Сами удаляются если все нормально работает


 
Kurmanbek   (2003-10-16 07:54) [4]

При выходе из программы Query1.Free или Table1.Free


 
Tumcoat ©   (2003-10-16 08:37) [5]


> gek © (16.10.03 07:42) [3]
> Сами удаляются если все нормально работает


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


 
Ильш ©   (2003-10-16 09:23) [6]

А вообще почему возникают сбои? Их по сути должно быть мало. Продумать надо.
Можно попытаться удалить эти файлы прогнав в цикле имена файлов и, если таковые есть, поудалять. Ведь не так много получается их.
А еще может быть есть возможность настройки BDE, чтоб эти временные создавались в системной Temp папке. Тогда уж на них можно забить и забыть :)


 
Tumcoat ©   (2003-10-16 09:49) [7]

Я не настолько мастер, чтоб учесть все возможные ошибки юзера и исправить их. Так что сбои будут, а значит будут и не удаленные временные файлы. А значит их надо удалять. А вот как это сделать программно я не знаю, даже не представляю с чего начать. Так что сорри, но хотелось бы получить ответ на этот вопрос.


 
Danilka ©   (2003-10-16 09:54) [8]

[7] Tumcoat © (16.10.03 09:49)
а штатные средства не подходят?
deletefile + F1


 
Anatoly Podgoretsky ©   (2003-10-16 10:34) [9]

Tumcoat © (16.10.03 09:49) [7]
Это не ошибки пользователя, а твои и самая грубая из них, то что ты созджаешь их в папке с базой, создавать нужно в отдельной, специально созданной папке, а ее удалять при старте программы.


 
grusty   (2003-10-16 12:05) [10]

Anatoly Podgoretsky абсолютно прав и хочу немного дополнить:


...
uses FileCtrl;
...

procedure TForm1.FormCreate(Sender: TObject);
var
path: String;
begin
...
path:=ExtractFilePath(ParamStr(0));
if not DirectoryExists(path+"Temp") then CreateDir(path+"Temp") else DeleteAllFiles(path+"Temp");
Session.PrivateDir:=path+"Temp";
...
end;


Процедура удаления временных файлов может выглядеть, например, следующим образом:


procedure TMainForm.DeleteAllFiles(StartDir: String);
var
OpStruc: TSHFileOpStruct;
frombuf: array [0..128] of Char;
begin
FillChar(frombuf, Sizeof(frombuf), 0);
StrPCopy(frombuf, StartDir+"\*.*");
with OpStruc do begin
Wnd:= Handle;
wFunc:=FO_DELETE;
pFrom:=@frombuf;
pTo:=nil;
fFlags:=FOF_NOCONFIRMATION;
fAnyOperationsAborted:=False;
hNameMappings:=nil;
lpszProgressTitle:=nil;
end;
ShFileOperation(OpStruc);
end;

Перед ее вызовом желательно проверить наличие этих файлов...


 
Anatoly Podgoretsky ©   (2003-10-16 12:20) [11]

Только желательно эту операцию сделать еще раньше, прямо в dpr файле, еще до создания файлов.
Другим дешевым вариантом, если человек почти не умеет программировать является создание простого .bat файда, где сначала удаляется иерархия временных папок, затем запускается приложение. Просто и сердито и знаний не требует, только начальные.


 
Tumcoat ©   (2003-10-17 02:30) [12]

Ладно, всем спасибо.



Страницы: 1 вся ветка

Текущий архив: 2003.11.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.05 c
6-41809
Delphi 5.01
2003-09-19 13:39
2003.11.13
Blokirovka ineta


1-41230
md
2003-11-01 11:07
2003.11.13
прога - невидимка


1-41570
AndreyA
2003-10-27 11:05
2003.11.13
Qreport


1-41309
denis24
2003-10-31 10:05
2003.11.13
stringgrig


14-42035
tria
2003-10-16 15:10
2003.11.13
Ключи защиты