[C/C++] savoir si c'est un répertoire

savoir si c'est un répertoire [C/C++] - Programmation

Marsh Posté le 11-05-2001 à 16:26:57    

euh bon c'est peut être une question con :
comment on fait quand on a un chemin pour savoir si c'est un répertoire, en fait est ce qu'il existe une fonction du genre bool isFolder(const char* chemin) ?

Reply

Marsh Posté le 11-05-2001 à 16:26:57   

Reply

Marsh Posté le 11-05-2001 à 16:29:58    

comment ça, savoir si c un répertoire !?
si c un répertoire existant tu veux dire !?

Reply

Marsh Posté le 11-05-2001 à 16:34:12    

bibO a écrit a écrit :

euh bon c'est peut être une question con :
comment on fait quand on a un chemin pour savoir si c'est un répertoire, en fait est ce qu'il existe une fonction du genre bool isFolder(const char* chemin) ?




Il faut utiliser findfirst et findnext je crois. Tu recherche ton fichier et tu récupère une structure avec des infos dessus (dont la propriété est-un-répertoire)...
Je te laisse regarder dans l'aide...

Reply

Marsh Posté le 11-05-2001 à 16:34:40    

El_gringo > non en fait je récupère un chemin et je voudrais savoir s'il s'agit d'un répertoire (ou d'un fichier)
le chemin est forcément valide

 

[edit]--Message édité par bibO--[/edit]

Reply

Marsh Posté le 11-05-2001 à 16:42:37    

Toucouch > ah oui c ça, il faut juste que je trouve la structure de _finddata_t dans l'aide pour pouvoir récupérer le type (enfin la propriété qui indique si c'est un répertoire ou pas)
 
merci :jap:

Reply

Marsh Posté le 11-05-2001 à 16:47:41    

http://msdn.microsoft.com/library/ [...] o_4qcl.htm
http://msdn.microsoft.com/library/ [...] o_4xv6.htm

Code :
  1. typedef struct _WIN32_FIND_DATA {
  2.   DWORD    dwFileAttributes;
  3.   FILETIME ftCreationTime;
  4.   FILETIME ftLastAccessTime;
  5.   FILETIME ftLastWriteTime;
  6.   DWORD    nFileSizeHigh;
  7.   DWORD    nFileSizeLow;
  8.   DWORD    dwReserved0;
  9.   DWORD    dwReserved1;
  10.   TCHAR    cFileName[ MAX_PATH ];
  11.   TCHAR    cAlternateFileName[ 14 ];
  12. } WIN32_FIND_DATA, *PWIN32_FIND_DATA;

Reply

Marsh Posté le 11-05-2001 à 16:57:26    

darkoli > ah merci, mais j'avais trouvé dans io.h
 
struct _finddata_t {
    unsigned    attrib;
    time_t      time_create;    /* -1 for FAT file systems */
    time_t      time_access;    /* -1 for FAT file systems */
    time_t      time_write;
    _fsize_t    size;
    char        name[260];
};
 
le problème est que attrib contient aussi les flags lecture seule, ..., alors pour isoler le type répertoire :??:
 
je vais tenter avec FindFirstFile alors au lieu de _findfirst et voir ce que ça donne

Reply

Marsh Posté le 11-05-2001 à 17:08:42    

Sinon si c'est en C++Builder y a DirectoryExists(chaine), FileExists(chaine), ExtractFilePath(chaine), etc...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed