PDA

Tam Sürümünü Görmek İçin : periyodik olarak dosya silme


Volkan Uzun
22/06/2004, 02:08
selamlar,
periyodik olarak , bugunun tarihinden 14 gun once veya daha once yaratilmis dosyalri nasil sildirebilirim.


Yuko
22/06/2004, 10:41
yakışıklısından bir program yaz abi

acemi
22/06/2004, 11:08
"Periyodik" kismini schechuled tast halleder. Bu dosyalari bulup silmek icin herhangi bir dille biraz kod yazilabilir.

skonak
22/06/2004, 11:50
disk clieanup la beraber schechuledi geliştirirseniz.Halledebilirsiniz.BAT la tetikleyedebilirsiniz.

Icarus
22/06/2004, 21:20
yakışıklısından bir program yaz abi

euheue çok şık :D

Volkan Uzun
02/07/2004, 02:20
yazdim. ilgilenen olursa kod asagida, calistirilmasi ise , deletefiles 10 d:\sil\
10 gunden yasli olan dosyalari bulup ( d:\sil\ altindaki ) buinlari siliyor
-------------------------------------------
#include<windows.h>
#include<iostream>
#include<time.h>

using namespace std;

void usage()
{
cout<<"Program usage : "<<endl;
cout<<"delete files <days> <directory>"<<endl;

return;
}
int main(int argc, char **pargv)
{
if (argc < 3 )
{
usage();
exit(1);
}


BOOL bFinished = FALSE;
TCHAR szFilePath[255];
TCHAR szFile[255];
SYSTEMTIME stLocal;
SYSTEMTIME stFile;

strcpy(szFilePath,pargv[2]);
strcat(szFilePath,"*.*");
int iDays=0;;
iDays = atoi(pargv[1]);

WIN32_FIND_DATA FindFileData;
HANDLE hFind = FindFirstFile(szFilePath,&FindFileData);
if(INVALID_HANDLE_VALUE==hFind)
return 1;

GetSystemTime(&stLocal);

while(!bFinished)
{
FILETIME fTime = FindFileData.ftCreationTime;
FileTimeToSystemTime(&fTime,&stFile);
WORD daysAlive = (abs(stLocal.wYear - stFile.wYear)) * 365;
daysAlive += (abs(stLocal.wMonth - stFile.wMonth)) * 30;
daysAlive +=(stLocal.wDay - stFile.wDay );

if(daysAlive >= iDays )
{
sprintf(szFile,"%s\\%s",pargv[2],FindFileData.cFileName);

bool bReason = DeleteFile(szFile);

if ( bReason == 0 )
{


};

}

if(!FindNextFile(hFind,&FindFileData))
{
if(GetLastError()==ERROR_NO_MORE_FILES)
{
bFinished = TRUE;
}
}
}


FindClose(hFind);


return 1;
}