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

Вниз

Удаление файлов с определенной датой создания..   Найти похожие ветки 

 
Dru095   (2007-11-17 17:39) [0]

Удалено модератором
Примечание: СПАМ


 
trubin ©   (2007-11-17 17:52) [1]

А вопрос то где?

Если я правильно понимаю, то Now / DecodeDate / EncodeDate тебе в руки


 
Сергей С.   (2007-11-17 17:52) [2]

И в чем загвоздка ?


 
Dru095   (2007-11-17 18:02) [3]

очень оперативно прям радует:)

я понимаю что данный алгоритм может Вас шокировать :) но прошу отнестись с пониманием. Вот так вот я пытаюсь это делать. Гдето тут есть ошибка, скорее всего при сравнении дат..
Но так как я новичок в этом деле прошу помощи у специалистов.

if GetFileDate(Path + "\" + sRec.Name) < DateToStr(Now - StrToInt(IniFiles.ReadString("SETUP", "ACTUAL_BD_DAY", "6")))

При таком сравнении удаляются не те архивы.
в общем запарочка при сравнении дат скорее всего..

//Функция использую для определения даты создания файла
function GetFileDate(FileName: string): string;
var
FHandle: Integer;
begin
FHandle := FileOpen(FileName, 0);
try
Result := DateToStr(FileDateToDateTime(FileGetDate(FHandle)) );
finally
FileClose(FHandle);
end;
end;

//функцию использую для удаления старых архивов
procedure GetAllFiles( Path: string );
var
sRec: TSearchRec;
isFound: boolean;
begin

//тут указываю путь к ини файлу
IniFiles := TIniFile.Create(ExtractFilePath(ParamStr(0)) + "Setup.ini");

isFound := FindFirst( Path + "\*.rar", faAnyFile, sRec ) = 0;

while isFound do
begin
if ( sRec.Name <> "." ) and ( sRec.Name <> ".." ) then
if ( sRec.Attr and faDirectory ) <> faDirectory then
//проверка архивов на актуальность

// Ошибка сравнения двух дат скорее всего тут..
//
// GetFileDate(Path + "\" + sRec.Name) - дата создания файла
// DateToStr(Now - StrToInt (IniFiles.ReadStrin("SETUP", "ACTUAL_BD_DAY", "6")) - текущая дата минус кол во дней указанное в ini.
//
//
//
//
//---------------------------------------------------------------
if GetFileDate(Path + "\" + sRec.Name) < DateToStr(Now - StrToInt (IniFiles.ReadString("SETUP", "ACTUAL_BD_DAY", "6"))) then
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//
//
// В итоге использования такого сравнения удаляются не те архивы.
//
//

//удаление
deletefile(Path + "\" + sRec.Name);

isFound := FindNext( sRec ) = 0;
end;

FindClose( sRec );
end;

Прошу помощи в исправлении ошибки.


 
Сергей С.   (2007-11-17 18:10) [4]

if FileDateToDateTime(FileGetDate(FHandle)) < (Now - IniFiles.ReadInteger("SETUP", "ACTUAL_BD_DAY", 6)) then DeleteFile(..)


 
Dru095   (2007-11-17 18:15) [5]

Спасибо сейчас попробую.. Обязательно отпишусь...



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

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

Наверх




Память: 0.47 MB
Время: 0.031 c
1-1190739519
Suchair
2007-09-25 20:58
2007.12.16
Чтение изображения


11-1181699539
Dosian
2007-06-13 05:52
2007.12.16
Ошибка в procedure ... message


2-1195666443
navichok
2007-11-21 20:34
2007.12.16
BDE error $000F


15-1195313794
@!!ex
2007-11-17 18:36
2007.12.16
Перевод приложения под LInux.


15-1195468081
YaroslavB
2007-11-19 13:28
2007.12.16
Double в шестнадцатеричную систему