GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana saya bisa memeriksa apakah ada direktori?

Anda dapat menggunakan opendir() dan periksa apakah ENOENT == errno pada kegagalan:

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

Gunakan kode berikut untuk memeriksa apakah ada folder. Ini berfungsi pada platform Windows &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");
    }
}

Anda mungkin menggunakan stat() dan berikan alamat struct stat , lalu centang membernya st_mode karena memiliki S_IFDIR atur.

#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. Cara memeriksa apakah ada perintah shell dari PHP

  2. Bagaimana saya bisa mengecualikan direktori dari perintah ls

  3. Bagaimana saya bisa melakukan chmod rekursif hanya pada direktori?

  1. Bagaimana saya bisa menemukan file terlama di pohon direktori

  2. Bagaimana cara menghapus file atau direktori bernama \?

  3. Bagaimana saya bisa memeriksa konfigurasi preemption kernel saya?

  1. Bagaimana Cara Memeriksa Apakah Direktori Tertentu Dipasang??

  2. Bagaimana Cara Memeriksa Apakah Variabel Ada Dalam Pernyataan 'jika'?

  3. Bagaimana Cara Memeriksa Apakah Bash Dapat Mencetak Warna?