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!!!!
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 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");
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 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
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 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 !"
excrt
Messages postés75Date d'inscriptionmercredi 5 avril 2006StatutMembreDerniè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...