本文中寫了兩個函數:oracle
1)int IsFileExist(const char* path)函數
用於檢查一個目錄是否存在 -1:存在 0:不存在spa
2)int IsFileExist(const char* path)code
用於檢查文件(全部類型,包括目錄類型)是否存在 -1:存在 0:不存在string
若是不存在,能夠用如下兩種方式打印錯誤信息:io
1)fprintf(stderr, "ERROR: %s\n", strerror(errno));class
2)perror("ERROR");sed
程序代碼:程序
#include <stdio.h> #include <dirent.h> #include <unistd.h> #include <sys/stat.h> #include <string.h> #include <errno.h> //檢查目錄是否存在 //-1:存在 0:不存在 int IsFolderExist(const char* path) { DIR *dp; if ((dp = opendir(path)) == NULL) { return 0; } closedir(dp); return -1; } //檢查文件(全部類型)是否存在 //-1:存在 0:不存在 int IsFileExist(const char* path) { return !access(path, F_OK); } // void Display(const char *path) { if (IsFolderExist(path)) { printf("Folder [%s] Exist!\n", path); } else { printf("Folder [%s]\n", path); //捕獲errno方法1: fprintf fprintf(stderr, "ERROR: %s\n", strerror(errno)); } if(IsFileExist(path)) { printf("File [%s] Exist!\n", path); } else { printf("File [%s]\n", path); //捕獲error方法2: perror perror("ERROR"); } } int main() { Display("/home/oracle/Documents"); //Current Folder Display("/home/12345edcba"); //Folder Not Exist Display("/home/oracle/Documents/a.c"); //Existing File return 0; }
運行截圖:方法
END