Форум: "Начинающим";
Текущий архив: 2007.07.08;
Скачать: [xml.tar.bz2];
Внизудаление файлов Найти похожие ветки
← →
rosl (2007-06-14 02:54) [0]как удалить файлы из каталога, созданные более недели назад?
← →
Riply © (2007-06-14 03:19) [1]Так же, как и созданные сегодня :)
← →
rosl (2007-06-14 03:25) [2]вот я и спрашиваю КАК? как определить дату создания файла? и ка его потом удалить?
← →
Германн © (2007-06-14 03:34) [3]
> Riply © (14.06.07 03:19) [1]
>
> Так же, как и созданные сегодня :)
>
+1
Прошлые сутки "Плохиш" много раз пытался наставить на путь истинный хоть кого-то :(((
И всяк "Самаритяне" давали "разжёванное". Как правило "недопережёвыванное". А "отрыжку" относили на авось.
:)
← →
Riply © (2007-06-14 03:41) [4]> [2] rosl (14.06.07 03:25)
FindFirst, FindNext, FindClose
В структуре TSearchRec есть параметр Time (если правильно помню)
Пример есть в Help-е
← →
Arm79 © (2007-06-14 20:17) [5]
procedure TLogWriter.RotateLogs;
var
i : integer;
OldName, NewName : PChar;
dTemp, dCurrent : Cardinal;
stTemp : SYSTEMTIME;
FileTime : ^TFileTime;
SearchRec : TSearchRec;
FileAttrs : Integer;
begin
if not FOpened
then raise Exception.Create("Â çàêðûòîì ñîñòîÿíèè ðîòàöèÿ ëîãîâ íåâîçìîæíà...");
Lock;
with TStringList.Create do
begin
FileAttrs := faAnyFile-faDirectory-faVolumeID-faSysFile;
if FindFirst(Format("%s*.log", [FLogDir]), FileAttrs, SearchRec) = 0
then begin
GetMem(FileTime, SizeOf(TFileTime));
FileTime^ := SearchRec.FindData.ftLastWriteTime;
AddObject(SearchRec.Name, TObject(FileTime));
while FindNext(SearchRec) = 0 do
begin
GetMem(FileTime, SizeOf(TFileTime));
FileTime^ := SearchRec.FindData.ftLastWriteTime;
AddObject(SearchRec.Name, TObject(FileTime));
end; // while FindNext(SearchRec) = 0 do
SysUtils.FindClose(SearchRec);
end; // if FindFirst(Format("%s*.log", [FLogDir]), FileAttrs, SearchRec) = 0
if Count > 0
then begin
for i := 0 to Count - 1
do begin
FileTime := Pointer(Objects[i]);
FileTimeToSystemTime(FileTime^, stTemp);
// íàì íóæåí âñåãî ëèøü äåíü ìîäèôèêàöèè
dTemp := Trunc(SystemTimeToDateTime(stTemp));
dCurrent := Trunc(Now);
if (dCurrent - dTemp) >= FLogAge
then begin
// îïåðàöèè êîïèðîâàíèÿ ìîãóò áûòü âåñüìà ïðîäîëæèòåëüí&# 251;
// îïåðàöèè ïåðåìåùåíèÿ òîæå â ñëó÷àå ïåðåìåùåíèÿ íà äðóãèå ðàçäåëû.
OldName := PChar(FLogDir + Strings[i]);
NewName := PChar(FBackupDir + Strings[i]);
case RotateAction of
raNone:
begin
// íè÷åãî íå äåëàåì
end;
raDelete:
begin
DeleteFile(OldName);
end;
raCopy:
begin
if FileExists(NewName)
then DeleteFile(NewName);
CopyFile(OldName, NewName, False);
end;
raMove:
begin
if FileExists(NewName)
then DeleteFile(NewName);
MoveFile(OldName, NewName);
end;
end;
if Assigned(FRotateLogs)
then FRotateLogs(Self, Strings[i], RotateAction);
end; // if (dCurrent - dTemp) > FLogAge
FreeMem(Pointer(Objects[i]), SizeOf(TFileTime));
end; // for i := 0 to Count - 1
Clear;
Free;
end; // if Count > 0
end; // with slTemp do
UnLock;
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.07.08;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.036 c