Vérifier la présence d'un fichier

gilds5 Messages postés 19 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 13 juin 2006 - 30 mai 2006 à 15:47
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 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!!!!

Merci d'avance!

36 réponses

nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
31 mai 2006 à 15:48
a = b = 1:
mov    DWORD PTR _b$[ebp], 1
mov    eax, DWORD PTR _b$[ebp]
mov    DWORD PTR _a$[ebp], eax

Le resultat de b = 1 est stocké dans eax, puis est placé dans a

a = 1;
b = 1;

OU
int a 1, b 1;

mov    DWORD PTR _a$[ebp], 1
mov    DWORD PTR _b$[ebp], 1

Donnent exactement le même code.
0
cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 8
2 juin 2006 à 13:29
pour savoir si ton document "fichier.txt" est présent dans ton dossier voici le code :







Attention, l'exécutable doit se trouver dans le dossier où se trouve ton document fichier.txt






#include <stdlib.h>
#include
<stdio.h>

#include
<conio.h>

#include
<dir.h>

#include
<dos.h>

#include <ctype.h>



void main (void)

{

       
struct ffblk tab[20], ffblk;


        int done, inc, i;

       

        inc = 0;

   

        done =
findfirst("*.txt",&ffblk,0); /* findfirst rend la valeur 0 si un fichier .txt existe sinon elle rend la valeur 1*/

        if( done != 0 )

          goto pas_de_fichier;

        while
(done == 0)
       {
         
    cprintf("%s",ffblk.ff_name);  /* affichage du
nom du premier fichier rendu par findfirst et le reste rendue par
findnext */
              tab[inc] = ffblk;  /* stockage du nom dans le tableau tab */
              inc++;
         
    done = findnext(&ffblk); /* findnext continue la
recherche commencé par findfirst et rend la valeur 0 tant qu'il y a
encore des fichiers .txt sinon elle rend la valeur 0 */
              printf("\n");
           }  

           for( i = 0 ; i <= inc-1 ; i++ )

           {

               
   if ( strcmpi(tab[inc].ff_name, "fichier.txt") == 0) /*
strcmpi rend une valeur différente de 0 tant que les noms des fichiers
contenus dans tab est different de fichier.txt */

               
            goto
fichier_txt_present;

            }

            goto fichier_txt_non_present;

            fichier_txt_present:

            printf("\nLe document fichier.txt existe dans ce dossier...");

            goto fin;

            fichier_txt_non_present:

            printf("\nLe document fichier.txt n'existe pas dans ce dossier");

            goto fin;

            pas_de_fichier:

            printf("\nAucun fichier .txt dans ce dossier");

            fin:

}



        
0
cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 8
2 juin 2006 à 13:31
une petite erreur findnext rend la valeur 0 tant qu'il y a des fichiers .txt sinon elle rend la valeur 1...
0
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
2 juin 2006 à 14:58
Salut fauve,

le code que tu viens de donner est portable sous Linux ?

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
0

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

Posez votre question
cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 8
2 juin 2006 à 15:04
Je ne sais si le code que j'ai écris est supportable sous linux tu utilise quel logiciel pour programmer en langage C ?
0
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
2 juin 2006 à 15:07
Ok.
J'utilise Dev-C++.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
0
cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 8
2 juin 2006 à 16:07
Si tu programme avec Dev-C++, il n'y a aucun souci normalement avec Dev-C++, il pourra supporter mon code.
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
2 juin 2006 à 16:08
Dev-C++ c'est pas pour Windows par hasard?
0
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
2 juin 2006 à 16:11
Ben si ! C'est pour ça que je comprends pas trop la réponse de fauve.
Moi je demandais juste pour Linux au cas où, rien de plus.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
2 juin 2006 à 16:17
Moi j'arrive même pas a le faire marcher sous Windows
0
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
2 juin 2006 à 16:19
Ah ! je vois.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
2 juin 2006 à 16:26
Dev-CPP aucune idée mais son compilateur cependant est un compilateur Linux d'origine (gcc). Tu peut recompiler ton code sous Linux sans probleme (si il n'utilise pas l'API win32 bien sûr) avec gcc

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
excrt Messages postés 75 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 3 juillet 2006
2 juin 2006 à 16:42
if (findfirst("fichier.txt", ..., ...) == 0) {
  //existe
}
else {
  // existe pas
}

google.com man stat
google.com man access
google.com ...

-=-= ExCRT =-=-
0
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
2 juin 2006 à 20:40
C'est ce que je voulais savoir SAKingdom.
Le compilateur c'est secondaire, c'est le code qui m'intéresse et de savoir si il est portable ou non. Si le code n'est pas portable, la question du compilateur ne se pose même pas.
Sinon ExCRT, tu peux expliquer ton message parce que j'ai pas compris ce que tu voulais dire.

YOYO, @+.








"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
0
excrt Messages postés 75 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 3 juillet 2006
3 juin 2006 à 00:11
désolé, j'ai oublié de préciser que mon dernier message était destiné a « fauve »
faire une recherche dans un répertoire pour savoir si _un_ fichier existe ou non, c'est carrément de l'abus !!!

Win: GetFileAttributes() << valide pour les fichiers et _aussi_ pour les dossiers(meilleur solution sous Windows, d'après moi)
Win/linux/...: stat() << idem
Win/Linux: [_]access() << permet de récupérer les droits
etc...
etc...
etc...

-=-= ExCRT =-=-
0
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
3 juin 2006 à 09:24
Ok, merci de ton explication.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
0
Rejoignez-nous