GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo comprobar si existe un directorio?

Puedes usar opendir() y comprueba si ENOENT == errno en caso de falla:

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

Utilice el siguiente código para comprobar si existe una carpeta. Funciona en plataformas Windows y 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");
    }
}

Podrías usar stat() y pasarle la dirección de un struct stat , luego verifique su miembro st_mode por tener S_IFDIR establecer.

#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. ¿Cómo verificar si existe una variable en una declaración 'if'?

  2. Cómo verificar si existe un comando de shell desde PHP

  3. ¿Cómo verificar si existe un archivo en un directorio específico en un script bash?

  4. ¿Cómo puedo verificar la configuración de preferencia de mi kernel?

  5. ¿Cómo puedo usar sudo para verificar si existe un archivo?

Cómo verificar si existe un archivo o directorio en Bash

Cómo verificar si existe un archivo o directorio en Bash

Cómo verificar si existe un archivo o directorio en Bash Shell

Cómo verificar el tamaño de los archivos y directorios en Linux

¿Cómo puedo encontrar el archivo más antiguo en un árbol de directorios?

¿Cómo puedo eliminar un archivo o directorio llamado \?