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.
yakışıklısından bir program yaz abi
"Periyodik" kismini schechuled tast halleder. Bu dosyalari bulup silmek icin herhangi bir dille biraz kod yazilabilir.
disk clieanup la beraber schechuledi geliştirirseniz.Halledebilirsiniz.BAT la tetikleyedebilirsiniz.
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;
}
Forum Yazılımı : vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.