GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso verificare se esiste una directory?

Puoi usare opendir() e controlla se ENOENT == errno in caso di errore:

#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. */
}

Utilizzare il codice seguente per verificare se esiste una cartella. Funziona su entrambe le piattaforme Windows e 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");
    }
}

Potresti usare stat() e passagli l'indirizzo di un struct stat , quindi controlla il suo membro st_mode per avere S_IFDIR impostato.

#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. Come posso calcolare un checksum md5 di una directory?

  2. Come posso eseguire dos2unix su un'intera directory?

  3. Come verificare se esiste un file in una directory specifica in uno script bash?

  4. Come posso controllare la mia configurazione di prelazione del kernel?

  5. Come posso usare sudo per verificare se esiste un file?

Come verificare se esiste un file o una directory in Bash

Come verificare se un file o una directory esiste in Bash

Come verificare se esiste un file o una directory in Bash Shell

Come controllare la dimensione di file e directory su Linux

Come posso trovare il file più vecchio in un albero di directory

Come posso rimuovere un file o una directory chiamata \?