niekowalski
Użytkownik
- Dołączył
- Grudzień 7, 2006
- Posty
- 54
Witam
napisałem sobie taki prymitywny programik który wyszukuje pliku o danym rozmiarze i go usuwa , potrzebne mi to bylo bo często się spotykam z wirusem "brontok" który robi swoją kopię we wszystkich folderach i podfolderach na całym dysku o nazwie takiej samej jak folder w którym się tworzy , tak że po nazwie nie da się go wyśledzić wiec wpadlem na pomysł żeby to zrobic po rozmiarze pliku , no i niby działa ale tylko na dyskach gdzie tych plików *.exe nie ma zbyt dużo ale gdy skanuje dysk gdzie tych plików jest bardzo dużo to program się wysypuje i nie wiem jak to zrobić żeby zwiększyć jakoś bufor stringa czy jak ??
wiem że char to robimy new char i zwiększa się bufor ale nie wiem jak to zrobić ze stringiem i czy to wogule o to chodzi .
Wklejam cały kod programu do sprawdzenia , tylko prosze się nie śmiac że tak namieszane :
napisałem sobie taki prymitywny programik który wyszukuje pliku o danym rozmiarze i go usuwa , potrzebne mi to bylo bo często się spotykam z wirusem "brontok" który robi swoją kopię we wszystkich folderach i podfolderach na całym dysku o nazwie takiej samej jak folder w którym się tworzy , tak że po nazwie nie da się go wyśledzić wiec wpadlem na pomysł żeby to zrobic po rozmiarze pliku , no i niby działa ale tylko na dyskach gdzie tych plików *.exe nie ma zbyt dużo ale gdy skanuje dysk gdzie tych plików jest bardzo dużo to program się wysypuje i nie wiem jak to zrobić żeby zwiększyć jakoś bufor stringa czy jak ??
wiem że char to robimy new char i zwiększa się bufor ale nie wiem jak to zrobić ze stringiem i czy to wogule o to chodzi .
Wklejam cały kod programu do sprawdzenia , tylko prosze się nie śmiac że tak namieszane :
Kod:
int main(){
DeleteFile("usuniete_pliki.txt");
DeleteFile("dir_skaner.txt");
char a;
cout<<" Podaj Literke dysku do skanowania"<<endl;
cin >> a;
switch (a)
{
case 'c':
system("dir /a /b /s C:\\*.exe>>dir_skaner.txt");
break;
case 'd':
system("dir /a /b /s D:\\*.exe>>dir_skaner.txt");
break;
case 'e':
system("dir /a /b /s E:\\*.exe>>dir_skaner.txt");
break;
case 'g':
system("dir /a /b /s G:\\*.exe>>dir_skaner.txt");
break;
case 'h':
system("dir /a /b /s H:\\*.exe>>dir_skaner.txt");
break;
case 'i':
system("dir /a /b /s I:\\*.exe>>dir_skaner.txt");
break;
case 'j':
system("dir /a /b /s J:\\*.exe>>dir_skaner.txt");
break;
case 'k':
system("dir /a /b /s K:\\*.exe>>dir_skaner.txt");
break;
case 'l':
system("dir /a /b /s L:\\*.exe>>dir_skaner.txt");
break;
case 'm':
system("dir /a /b /s M:\\*.exe>>dir_skaner.txt");
break;
case 'n':
system("dir /a /b /s N:\\*.exe>>dir_skaner.txt");
break;
}
Sleep(10);
ifstream in("dir_skaner.txt");
char linia=1;
string wers[MAX_PATH];
int wielkosc;
printf("%s"," Podaj Rozmiar Plikow do usuniecia\n");
scanf("%d",&wielkosc);
while(getline(in, wers[linia])){
{
DWORD dwRozmiar;
string Plik=wers[linia];
HANDLE hPlik;
hPlik = CreateFile(Plik.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
dwRozmiar = GetFileSize(hPlik, NULL);
CloseHandle(hPlik);
if(dwRozmiar == wielkosc)
{
SetFileAttributes(Plik.c_str(),FILE_FLAG_DELETE_ON_CLOSE);
DeleteFile(Plik.c_str());
FILE *usuniete;
usuniete = fopen("usuniete_pliki.txt","a+");
fputs(Plik.c_str(),usuniete);
fputs("\n",usuniete);
fclose(usuniete);
}
}
Sleep(50);
linia++;
}
in.close();
DeleteFile("dir_skaner.txt");
ShellExecute(0,"open","usuniete_pliki.txt",0,0,SW_NORMAL);
return 0;
}
Ostatnio edytowane przez moderatora: