Форум: "Базы";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
ВнизУдаление временных 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.036 c