Главная страница
    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.033 c
1-41425
AlexDBases
2003-10-29 14:43
2003.11.13
Ссылка на статью про консоль....


7-42201
ksa2002
2003-08-27 11:37
2003.11.13
МОДЕМЫ


3-41020
Vick
2003-10-15 11:16
2003.11.13
Variant - неизвестный тип для ClientDataSet


1-41189
SergeY-cha
2003-11-02 11:23
2003.11.13
winXp


1-41416
Vadim S
2003-10-29 16:15
2003.11.13
Invalid pointer operation





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский