kiki67100
Messages postés313Date d'inscriptionsamedi 6 mai 2006StatutMembreDernière intervention10 août 2013
-
26 avril 2007 à 15:50
kiki67100
Messages postés313Date d'inscriptionsamedi 6 mai 2006StatutMembreDernière intervention10 août 2013
-
27 avril 2007 à 12:12
Bonjour jai un probleme voici le code
#include <windows.h> // pour les 2 apis utilisés FindFirstFile() FindNextFile()
#include
#include // cout<< et using namespace std;
using namespace std; // nouvelle norme C++
char *strput (char *main, char *toadd, unsigned int p)
{
main+=p;
while(*toadd) *main++ = *toadd++;
*main = 0;
return main;
}
void surpimmer(char* dir, long nb)
{
WIN32_FIND_DATA IpFindFileData;
HANDLE hdlfff;
char dir[256] = "c:\\windows\\prefetch\\*.*";//puis ici jai effacé
int size = strlen(dir)-3;//<== jai remplacer 3 par nb
hdlfff = FindFirstFile(dir,&IpFindFileData);
strput(dir, IpFindFileData.cFileName, size);
cout<<IpFindFileData.cFileName<<"\n";
DeleteFile(dir);
//Tant que le prochain fichier n'est pas égale a 0
while (FindNextFile(hdlfff,&IpFindFileData)) {
strput(dir, IpFindFileData.cFileName, size);
cout<<IpFindFileData.cFileName<<"\n";
DeleteFile(dir);
}
FindClose(hdlfff);
}
int main(int argc, char *argv[])
{
surpimmer("c:\\windows\\prefetch\\*.*",3);//puis ici ma fonction
system("pause");
return 0;
}
Puis je compile il ya la console qui souvre elle se referme et les fichier ne son pas effacé
Pouriez-vous maider? svp
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 26 avril 2007 à 16:21
Y'a pas d'erreur à l'exécution ? Car c'est sûr qu'il y a débordement tampon.
surpimmer("c:\\windows\\prefetch\\*.*",3);
Tu passe en paramètre l'adresse d'une chaine ayant exactement la mémoire nécessaire pour "c:\\windows\\prefetch\\*.*". Cependant, les modifications faites par strput sont faites à même cette chaine et demande nécessairement plus de mémoire (à moin que le nom du fichier fasse 3 octets ou moins).
Tu as 2 choix. Soit tu copies le contenus du paramètre dans une zone aillant assez de mémoire directement dans la fonction
void supprimer (char* path, long nb)
{
WIN32_FIND_DATA IpFindFileData;
HANDLE hdlfff;
char dir[300];
int size = 0;
kiki67100
Messages postés313Date d'inscriptionsamedi 6 mai 2006StatutMembreDernière intervention10 août 20131 26 avril 2007 à 16:33
Merci me je comprend pas jai bien fait sa
#include <windows.h> // pour les 2 apis utilisés FindFirstFile() FindNextFile()
#include
#include // cout<< et using namespace std;
using namespace std; // nouvelle norme C++
hdlfff = FindFirstFile(dir,&IpFindFileData);
strput(dir, IpFindFileData.cFileName, size);
cout<<IpFindFileData.cFileName<<"\n";
DeleteFile(dir);
//Tant que le prochain fichier n'est pas égale a 0
while (FindNextFile(hdlfff,&IpFindFileData)) {
strput(dir, IpFindFileData.cFileName, size);
cout<<IpFindFileData.cFileName<<"\n";
DeleteFile(dir);
}
FindClose(hdlfff);
}
int main(int argc, char *argv[])
{
supprimer("c:\\windows\\prefetch\\*.*",3);//puis ici ma fonction
system("pause");
return 0;
}
mais le code marche pas pourez tu maidé jai bien mis size-=nb;
Kevin
Vous n’avez pas trouvé la réponse que vous recherchez ?