gilds5
Messages postés19Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention13 juin 2006
-
30 mai 2006 à 15:47
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 2009
-
3 juin 2006 à 09:24
Bonjour à tous
J'ai trouvé quelques réponses pour le même genre de sujet, mais comme je débute à mort, je n'ai rien trouvé que puisse comprendre...
Donc voici mon problème, qui devrait parraitre relativement ridicule pour ceux qui savent faire:
j'ai un dossier dans lequel on m'envoie de temps en temps un fichier texte, et je voudrais donc lancer une action lorsque le fichier est déposé (sachant qu'une fois le bordel effectué, je vide tout le dossier).
quelque chose du genre
if (fichier.txt détecté)
{
tout plein de trucs...
vider le dossier
}
j'ai vu qu'avec find first file ou quelque chose de ce genre c'était possible, mais j'ai pas trop compris. Si un personnage éclairé pouvait m'expliquer comment on utilise ce truc, ou toute autre solution, je suis preneur!!!!
excrt
Messages postés75Date d'inscriptionmercredi 5 avril 2006StatutMembreDernière intervention 3 juillet 2006 30 mai 2006 à 16:58
pour vérifier l'existance d'un fichier, utilises GetFileAttributes()
#include <windows.h>
//- ...
if (GetFileAttributes("chemin d'accès complet du fichier ici") != INVALID_FILE_ATTRIBUTES)
{
//- le fichier existe
}
else
{
//- le fichier n'existe pas
}
pour effectuer une petite recherche, c'est presque aussi simple
HANDLE find; //- handle de recherche(identificateur unique)
WIN32_FIND_DATA wfd; //- va contenir les infos de chaque fichier/dossier trouvés
//- débute la recherche en indiquant dans quel répertoire débuter la recherche
//- *.* >> pour nous retourner tout ce qu'il trouve
//- *.exe >> pour nous retourner seulement les fichiers avec l'extension .exe
//- ...
find = FindFirstFile("c:\\*.*", &wfd);
//- vérifie qu'il n'y a pas d'erreur
if (find != INVALID_HANDLE_VALUE)
{
do
{
//- est-ce un répertoire/dossier?
if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
//- c'est un dossier >> wfd.cFileName contient le nom du dossier trouvé
//- vérifie que ce n'est pas le dossier courant ou précédent
if (strcmp(wfd.cFileName, ".") != 0 && strcmp(wfd.cFileName, "..") != 0)
{
//- c'est okay ...
printf("dossier: %s\n", wfd.cFileName);
}
}
else
{
//- c'est un fichier >> wfd.cFileName contient le nom du fichier trouvé
printf("fichier: %s\n", wfd.cFileName);
}
}
while (FindNextFile(find, &wfd) != FALSE); //- tant qu'il trouve des fichiers/dossiers
FindClose(find); //- détruit le handle/libère les ressources
}
else
{
//- erreur
}
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 30 mai 2006 à 20:17
Ce qui est ridicule c'est la manière dont tu as nié ce qu'a dit excrt.
C'est sur qu'on a tous besoin de prendre exemple sur quelqu'un, mais ca
ne dispense pas d'avoir un point de vue critique sur l'exemple
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 30 mai 2006 à 20:22
J'ai pas nié du tout !!! Peut-être = nié pour toi ?
Pour moi ça veut dire que je ne sais pas si c'est mieux donc pas d'avis.
En tous cas, gilds5 a ce qu'il lui faut, c'est l'essentiel.
YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 30 mai 2006 à 21:14
C'est certain, faut être critique sur tout et tous sans restriction.
FindClose() sur un retour de handle invalide ??? j'aurais du être bourré ce jour là mais comme je ne bois pas...
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 31 mai 2006 à 14:25
Très drôle comme réponse. Franchement se moquer comme ça c'est pas très malin je trouve.
D'autant plus que la question n'est pas spécialement stupide car ça pourrait (pourquoi pas) rendre le test plus rapide.
YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 31 mai 2006 à 14:53
Attention, je n'ai pas dit que ça accélère. J'ai dit ça comme un exemple de ce que cette écriture pourrait faire.
Moi aussi je me demandais pourquoi BruNews l'avait écrit de cette manière.
Mais c'est peut-être tout simplement une habitude de programmation.
YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 31 mai 2006 à 15:15
Qu'elles font la même chose c'est certain. Mais qq chose aurait peut-être pu être différent.
Tiens un autre petit exemple, dont je ne sais pas la réponse :
int a, b;a b 1;
ou
int a, b;
a = 1;
b = 1;
ou
int a 1, b 1;
Il est clair qu'ils font tous la même chose, mais est-ce que le résultat mets le même temps dans chaque cas ?
YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"