Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.037 c
3-40923
Nton
2003-10-19 15:30
2003.11.13
Подскажите как правильно записать?


3-40787
grifon-nn
2003-10-21 22:27
2003.11.13
Индексы Paradox


4-42301
ruslan_as
2003-09-08 12:42
2003.11.13
Занести пароль в окно другого приложения


1-41322
kex86
2003-10-31 08:23
2003.11.13
Как сообщить всем приложениям об изменении списка запущенных проц


14-41987
VEG
2003-10-19 20:50
2003.11.13
---|Ветка была без названия|---





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский