Trong bài viết này tôi xin giới thiệu một số cách để kiểm tra sự tồn tại của file bằng các hàm trong C/C++
Sử dụng hàm access() trong thư viện io.h
int access(const char *path, int mode);
Tham số:
path: đường dẫn của file cần kiểm tra mode: kiểm tra file ở trạng thái nào. Có 4 trạng thái hàm access() có thể kiểm tra: - mode = 0: kiểm tra sự tồn tại của file - mode = 2: kiểm tra quyền ghi file (write-only) - mode = 4: kiểm tra quyền đọc file (read-only) - mode = 6: kiểm tra quyền đọc và ghi file(read-write)
Trả về:
Hàm trả về -1 nếu không tìm thấy file.
Ví dụ: Tạo file “vncoding.txt” tại đường dẫn “C:\”
#include <stdio.h> #include "conio.h" #include <io.h> void main( ) { char path[] = "C:\\vncoding.txt"; if (access(path, 0) != -1) { printf("\nFile \"%s\" exists", path); } else { printf("\nFile \"%s\" doesn't exist", path); } getch(); }
Kết quả:
Sử dụng hàm stat() trong thư viện “sys/stat.h”
Hàm stat() dùng để lấy thông tin về file (như size, thời gian tạo file,..)
int _stat(const char *path, struct _stat *buffer);
Tham số:
path: đường dẫn của file cần kiểm tra. buffer: vùng nhớ lưu các thông tin của file.
Trả về:
Hàm trả về 0 nếu các thông tin của file được lưu vào buffer thành công. Hàm trả về -1 nếu không tìm thấy file
Ví dụ: Tạo file “vncoding.txt” tại đường dẫn “C:\”
#include "stdio.h" #include "conio.h" #include "sys/stat.h" int main( ) { struct stat buff; char path[] = "C:\\vncoding.txt"; int res = stat(path, &buff); if (res != -1) { printf("\nFile \"%s\" exists", path); } else { printf("\nFile \"%s\" doesn't exist", path); } getch(); }
Kết quả:
Leave a Reply
You must be logged in to post a comment.