Petit probleme en C
Résolu
blackdam
Messages postés
332
Statut
Membre
-
lirey83 Messages postés 76 Statut Membre -
lirey83 Messages postés 76 Statut Membre -
Bonjour a tous!
J'ai un code qui me permet de lister les fichiers dans un dossier, qui est stocké apparament dans la variable data.cFileName.
Ensuite je prend cette variable, je la stocke dans une autre variable, mais le problème c'est que lorsque je veux ouvrir le fichier il met retourne NULL.Voila mon code :
Question : comment faire pour ouvrir le fichier???
J'ai un code qui me permet de lister les fichiers dans un dossier, qui est stocké apparament dans la variable data.cFileName.
Ensuite je prend cette variable, je la stocke dans une autre variable, mais le problème c'est que lorsque je veux ouvrir le fichier il met retourne NULL.Voila mon code :
#include<stdio.h>
#include <windows.h>
main(){
char d[100];
char f[100];
WIN32_FIND_DATA data;
HANDLE h = FindFirstFile("C:\\Documents and Settings\\Blackdam\\Mes documents\\Stage\\fichiers\\*.*", &data);
BOOL bMoreFiles = (h != INVALID_HANDLE_VALUE);
while (bMoreFiles)
{
sprintf(d,"%s",data.cFileName);
printf("%s\n",d);
sprintf(f,"lut.%s",d);
rename(d,f);
system("pause");
FILE *fp = fopen (d,"r");
printf("%s\n",fp);
if (fp == NULL)
{printf(" ");}
else
{
printf("ouverture reussi");
}
bMoreFiles = FindNextFile(h, &data);}
}
Question : comment faire pour ouvrir le fichier???
2 réponses
Salut
Pourquoi tant de complication ?
D'abord, utilise chdir() pour te placer dans le bon dossier, puis fait directement :
FILE *fp = fopen (File.cFileName,"r");
pour ouvrir ton fichier.
Pense à utiliser le masque d'extension pour restreindre le nombre de fichier listé : exemple pour les fichiers cpp :
hSearch=FindFirstFile("*.cpp", &File);
Pourquoi tant de complication ?
D'abord, utilise chdir() pour te placer dans le bon dossier, puis fait directement :
FILE *fp = fopen (File.cFileName,"r");
pour ouvrir ton fichier.
Pense à utiliser le masque d'extension pour restreindre le nombre de fichier listé : exemple pour les fichiers cpp :
hSearch=FindFirstFile("*.cpp", &File);
Voilà par exemple pour afficher un fichier *.cpp directement dans la console :
#include <windows.h>
#include <stdio.h>
bool Affiche(char *ext)
{
WIN32_FIND_DATA File;
HANDLE hSearch;
bool re = true;
FILE *fp;
hSearch=FindFirstFile(ext, &File);
if (hSearch == INVALID_HANDLE_VALUE)
return false;
do
{
/* Traitement */
printf("\nFichier affiché : %s\n",File.cFileName);
fp = fopen(File.cFileName,"r");
if (fp != NULL)
{
while (!feof(fp))
fputc(fgetc(fp), stdout);
fclose(fp);
}
re = FindNextFile(hSearch, &File);
}
while (re);
FindClose(hSearch);
return true;
}
void main()
{
Affiche("*.cpp");
}