GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je vérifier si un répertoire existe ?

Vous pouvez utiliser opendir() et vérifiez si ENOENT == errno en cas d'échec :

#include <dirent.h>
#include <errno.h>

DIR* dir = opendir("mydir");
if (dir) {
    /* Directory exists. */
    closedir(dir);
} else if (ENOENT == errno) {
    /* Directory does not exist. */
} else {
    /* opendir() failed for some other reason. */
}

Utilisez le code suivant pour vérifier si un dossier existe. Il fonctionne sur les plates-formes Windows et Linux.

#include <stdio.h>
#include <sys/stat.h>

int main(int argc, char* argv[])
{
    const char* folder;
    //folder = "C:\\Users\\SaMaN\\Desktop\\Ppln";
    folder = "/tmp";
    struct stat sb;

    if (stat(folder, &sb) == 0 && S_ISDIR(sb.st_mode)) {
        printf("YES\n");
    } else {
        printf("NO\n");
    }
}

Vous pouvez utiliser stat() et lui passer l'adresse d'un struct stat , puis vérifiez son membre st_mode pour avoir S_IFDIR ensemble.

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>

...

char d[] = "mydir";

struct stat s = {0};

if (!stat(d, &s))
  printf("'%s' is %sa directory.\n", d, (s.st_mode & S_IFDIR)  : "" ? "not ");
  // (s.st_mode & S_IFDIR) can be replaced with S_ISDIR(s.st_mode)
else
  perror("stat()");

Linux
  1. Comment puis-je créer une arborescence de répertoires en C++/Linux ?

  2. Comment puis-je vérifier qu'un fichier existe et exécuter une commande sinon?

  3. Comment puis-je calculer une somme de contrôle md5 d'un répertoire?

  4. Comment vérifier si une commande shell existe depuis PHP

  5. Comment puis-je faire un chmod récursif uniquement sur les répertoires?

Comment vérifier si un fichier ou un répertoire existe dans Bash

Comment vérifier si un fichier ou un répertoire existe dans Bash

Comment vérifier si un fichier ou un répertoire existe dans Bash Shell

Comment vérifier la taille des fichiers et du répertoire sous Linux

Comment puis-je vérifier ma configuration de préemption du noyau ?

Comment puis-je utiliser sudo pour vérifier si un fichier existe ?