GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich überprüfen, ob ein Verzeichnis existiert?

Sie können opendir() verwenden und prüfen Sie, ob ENOENT == errno bei Fehler:

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

Verwenden Sie den folgenden Code, um zu überprüfen, ob ein Ordner vorhanden ist. Es funktioniert sowohl auf Windows- als auch auf Linux-Plattformen.

#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");
    }
}

Sie können stat() verwenden und übergeben Sie ihm die Adresse einer struct stat , und überprüfen Sie dann sein Mitglied st_mode für S_IFDIR eingestellt.

#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. Wie überprüfe ich, ob ein bestimmtes Verzeichnis gemountet ist?

  2. Wie kann ich dos2unix auf einem ganzen Verzeichnis ausführen?

  3. Wie kann ich überprüfen, ob eine Datei in einem bestimmten Verzeichnis in einem Bash-Skript vorhanden ist?

  4. Wie kann ich ein Verzeichnis vom Befehl ls ausschließen

  5. Wie kann ich meine Kernel-Preemption-Konfiguration überprüfen?

So überprüfen Sie, ob eine Datei oder ein Verzeichnis in Bash vorhanden ist

So überprüfen Sie, ob eine Datei oder ein Verzeichnis in Bash vorhanden ist

So überprüfen Sie, ob eine Datei oder ein Verzeichnis in der Bash-Shell vorhanden ist

So überprüfen Sie die Größe von Dateien und Verzeichnissen unter Linux

Wie kann ich eine Datei oder ein Verzeichnis namens \ entfernen?

Wie kann ich mit sudo prüfen, ob eine Datei existiert?