thể trùng lặp:
What’s the best way to check if a file exists in C? (cross platform)C, kiểm tra xem tệp có tồn tại mà không có khả năng đọc/ghi không?
tôi muốn kiểm tra xem một tập tin tồn tại hay không. Tôi đã thay đổi quyền truy cập của tệp thử nghiệm thành "chmod -r somefile". Tuy nhiên bây giờ nó nói rằng tập tin không tồn tại mặc dù nó tồn tại.
Vì vậy, tôi giả sử nếu tôi không có quyền đọc tôi không thể mở tệp bằng "fopen r". Nhưng điều đó có nghĩa là không có cách nào dễ dàng để biết một tập tin tồn tại hoặc không thể đọc/ghi?
Hoặc tôi đang thiếu thứ gì đó? Bất kỳ sự trợ giúp nào đều sẽ là tuyệt vời.
Cảm ơn!
int doesFileExist(const char* filename)
{
FILE* fptr = fopen(filename, "r");
if (fptr != NULL)
{
fclose(fptr);
printf("File exists\n");
return 1;
}
printf("File doesnt exist\n");
return 0;
}
Cập nhật: Cảm ơn bạn vì những liên kết và giải thích tuyệt vời này!
Um .. bạn đã kiểm tra 'errno' chưa? EDIT: thử này để có được một số thông báo lỗi: 'printf (" File không tồn tại:% s \ n ", strerror (errno));' không quên bao gồm 'errno.h' header. – Jack
Đây là những gì tôi ghét về API stdio, bất cứ khi nào bạn cần làm điều gì đó không giống như thay đổi kích cỡ tệp hoặc di chuyển tệp mà không sao chép tệp và xóa tệp cũ, bạn sẽ không may về tính di động. – Thomas