[c++]lister puis suprimmé *.*

Résolu
kiki67100 Messages postés 313 Date d'inscription samedi 6 mai 2006 Statut Membre Dernière intervention 10 août 2013 - 19 avril 2007 à 14:04
kiki67100 Messages postés 313 Date d'inscription samedi 6 mai 2006 Statut Membre Dernière intervention 10 août 2013 - 19 avril 2007 à 15:09
Bonjour

je vien de recupérer un code pour listé le contenu repertoire

#include <windows.h> // pour les 2 apis utilisés FindFirstFile() FindNextFile()
#include // cout<< et using namespace std;
using namespace std; // nouvelle norme C++


int main(void) {
 HANDLE hdlfff;


 LPCTSTR dir = "c:\\windows\\prefetch\\*.*";
 WIN32_FIND_DATA IpFindFileData;




hdlfff = FindFirstFile(dir,&IpFindFileData);
cout<null");         
}
FindClose(hdlfff);
}

Je voudrais suprimmé *.* du dossier prefetch mais ceci de marche pas pourquoi?

Pouriez-vous maidé

merci

Kevin

14 réponses

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
19 avril 2007 à 15:00
LPCTSTR dir = "c:\\*.txt";
...
sprintf(path,"%s\\%s",dir,IpFindFileData.cFileName);
Ça va donner c:\*.txtnomdufichier, c'est sûr que ça ne marchera pas.
Essais ceci:
char *strput (char *main, char *toadd, unsigned int p)
{
    main+=p;
    while(*toadd) *main++ = *toadd++;
    *main = 0;
    return main;
}

int main(int argc, char *argv[])
{
    WIN32_FIND_DATA IpFindFileData;
    HANDLE hdlfff;
    char dir[256] = "c:\\windows\\prefetch\\*.*";
    int size = strlen(dir)-3;

    hdlfff = FindFirstFile(dir,&IpFindFileData);
    strput(dir, IpFindFileData.cFileName, size);
    cout<]
3
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
19 avril 2007 à 15:04
int size = strlen(dir)-3;
Le -3, c'est la taille de l'extension (*.*). Si tu change l'extension et que ça taille change (*.txt -> 4), il faudra en tenir compte.

C++ (@++)<!--
3
JejeLand Messages postés 111 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 5 août 2011 1
19 avril 2007 à 14:18
Bonjour,

IpFindFileData.cFileName contient uniquemant le nom du fichier, pour le supprimer, il faut créer le path en entier, c'est à dire dans ton cas :
path = dir + IpFindFileData.cFileName puis remove(path)
0
kiki67100 Messages postés 313 Date d'inscription samedi 6 mai 2006 Statut Membre Dernière intervention 10 août 2013 1
19 avril 2007 à 14:23
Merci mais jai fait comme sa

#include <windows.h> // pour les 2 apis utilisés FindFirstFile() FindNextFile()
#include // cout<< et using namespace std;
using namespace std; // nouvelle norme C++


int main(void) {
 HANDLE hdlfff;


 LPCTSTR dir = "c:\\windows\\prefetch\\*.*";
 WIN32_FIND_DATA IpFindFileData;




hdlfff = FindFirstFile(dir,&IpFindFileData);
cout<null");         
}
FindClose(hdlfff);
}
 
dev c++ me fait
17 C:\Dev-Cpp\hjkhjk.cpp `path' undeclared (first use this function) pourquoi?

Kevin
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JejeLand Messages postés 111 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 5 août 2011 1
19 avril 2007 à 14:34
Ok

char path[256];
sprintf(path,"%s\\%s",dir,IpFindFileData.cFileName);
remove(path);
0
kiki67100 Messages postés 313 Date d'inscription samedi 6 mai 2006 Statut Membre Dernière intervention 10 août 2013 1
19 avril 2007 à 14:39
Merci pour aide

mais le code compile mais me surpimme pas les fichier pourquoi ?

Kevin
0
JejeLand Messages postés 111 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 5 août 2011 1
19 avril 2007 à 14:47
Perso pour supprimer les fichiers j'utilise la commande unlink(path) en incluant
#include <stdio.h>
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
19 avril 2007 à 14:47
Essais de retirer le system("pause>null") à la fin de ta boucle et remplace remove par DeleteFile.

C++ (@++)<!--
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
19 avril 2007 à 14:49
Aussi, le premier fichier que tu trouvera ne sera jamais supprimer, car tu saute immédiatement au second. Il faut faire un DeleteFile sur le fichier trouvé par FindFirstFile aussi.

C++ (@++)<!--
0
kiki67100 Messages postés 313 Date d'inscription samedi 6 mai 2006 Statut Membre Dernière intervention 10 août 2013 1
19 avril 2007 à 14:52
Merci pour vos reponse

Jejeland ===>20 C:\Dev-Cpp\hjkhjk.cpp `unlink' undeclared (first use this function)
jai bien inclu #include <stdio.h>

SAKingdom jai mis jai suivie te instruction mais sa ne marche pas sa ne supprimme aucun fichier de la chaine pourquoi??

Kevin
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
19 avril 2007 à 14:55
Renvoie le code.

C++ (@++)<!--
0
kiki67100 Messages postés 313 Date d'inscription samedi 6 mai 2006 Statut Membre Dernière intervention 10 août 2013 1
19 avril 2007 à 14:56
#include <windows.h> // pour les 2 apis utilisés FindFirstFile() FindNextFile()
#include
#include <stdio.h> // cout<< et using namespace std;
using namespace std; // nouvelle norme C++


int main(void) {
 HANDLE hdlfff;


 LPCTSTR dir = "c:\\*.txt";
 WIN32_FIND_DATA IpFindFileData;




hdlfff = FindFirstFile(dir,&IpFindFileData);
cout<<IpFindFileData.cFileName<<"\n";


//Tant que le prochain fichier n'est pas égale a 0
while (FindNextFile(hdlfff,&IpFindFileData)) {
char path[256];
sprintf(path,"%s\\%s",dir,IpFindFileData.cFileName);
DeleteFile(path);
cout<<IpFindFileData.cFileName<<"\n";


        
}
FindClose(hdlfff);
}
0
JejeLand Messages postés 111 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 5 août 2011 1
19 avril 2007 à 15:05
En fait lorsque tu  crée le path il faut enlever évidement de la chaine dir le \\*.*"
0
kiki67100 Messages postés 313 Date d'inscription samedi 6 mai 2006 Statut Membre Dernière intervention 10 août 2013 1
19 avril 2007 à 15:09
Mercii iiiiiiiiiiiiiiiii pour votre aide

le code  SAKingdom marche nikel  pour l'info unlink et dans #include

Encore merci pour votre aide

Kevin

vous pouvais faire un tour sur http://www.cppfrance.com/infomsg_FOCUS-TRANSPRENCE-REGLABLE-CPLUSPLUS_923659.aspx pour maidé merci
0
Rejoignez-nous