Kiểm tra sự tồn tại của file

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ả:

Kiểm tra sự tồn tại của file sử dụng hàm access
Kiểm tra sự tồn tại của file sử dụng hàm access

 

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ả:

Kiểm tra sự tồn tại của file sử dụng hàm stat
Kiểm tra sự tồn tại của file sử dụng hàm stat

Be the first to comment

Leave a Reply