Ouvrir un dossier en mode binaire (lang C)

moi411 Messages postés 180 Date d'inscription samedi 22 novembre 2003 Statut Membre Dernière intervention 25 juin 2017 - 30 juil. 2005 à 00:58
mondrone Messages postés 246 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 11 mars 2012 - 30 juil. 2005 à 14:36
Tout d'abord bonsoir,

J'ai donc un problème sur un programme. Ce prog doit servir, une fois
terminé, à copier des fichiers d'un dossier à un autre en utilisant une
barre de progression (plus ou moins comme dans le poste de travail).
J'ai fais à peu près tout le programme sauf une chose:

ouvrir le dossier source en mode binaire (ce qui me servira à trouver
la taille de mon dossier et donc de pouvoir mettre en action ma barre
de progression).



Je mets le code de la partie du programme qui ne fonctionne pas, ça
paraitra sans doute plus claire. La seule que je veux c'est pouvoir
ouvrir le dossier et pouvoir travailler dedans comme je le fais avec un
fichier texte...



#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

FILE *fd;




long fsize() //fonction servant à trouver la taille totale du dossier

{

long savepos, size;

savepos=ftell(fd);

fseek(fd,0,SEEK_END);

size=ftell(fd);

fseek(fd,savepos,SEEK_SET);

return size;

}



int main()

{

fd=fopen("c:\\docs","rb");

if(fd==NULL) printf("erreur");

else printf("c'est bon (fichier ouvert)");

printf("%d",fsize());

fclose(fd);



printf("\n\n\n");

system("pause");

}



Je vous remercie d'avance et attends vos réponse... A bientôt.

2 réponses

BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
30 juil. 2005 à 02:05
Ce sont les fichiers qu'on ouvre, pas les dossiers.
Sous Windows: CopyFile() et tu n'as rien à ouvrir du tout.

ciao...
BruNews, MVP VC++
0
mondrone Messages postés 246 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 11 mars 2012
30 juil. 2005 à 14:36
Si tu veux savoir la taille de ton dossier, il fo plutot l'explorer, en
additionnant la taille de chaque fichier qu'il contient. Le seul pb c
quand ton dossier contient d'autres dossiers paske là il faut fouiller
chaque sous dossier et ainsi de suite. Si tu veux rester en mode
console (et uniquement sous dos et windows) la librairie dos.h permet
de lister le contenu d'un répertoire, avec une structure qui renvoie à
chaque occurence le nom du prochain fichier (par ordre alpha) ainsi que
la taille, et d'autres choses encore. Par contre, je ne connais pas
l'équivalent de cette librairie sous windows. Et je ne suis pas sur non
plus que tu puisse lister aussi les sous dossier.

<hr size="2" width="100%"> Qui ne tente rien...

Ne risque pas d'avoir grand chose !!!

<hr siz="">
0