Oct 1, 2014

Kiểm tra một file có tồn tại hay không trong C++


Quay trở lại công cuộc ngồi code và research. Hôm nay mình ngồi code một bài đơn giản: chuyển ảnh màu thành ảnh mức xám. Bài tập nhẹ nhàng nhưng cũng có một vấn đề hay ho: làm sao để kiểm tra xem một file có tồn tại hay không trong C++.

Và mình đã lượm được bài này: link

inline bool exists_test0 (const std::string& name) {
ifstream f(name.c_str());
if (f.good()) {
f.close();
return true;
} else {
f.close();
return false;
}
}
inline bool exists_test1 (const std::string& name) {
if (FILE *file = fopen(name.c_str(), "r")) {
fclose(file);
return true;
} else {
return false;
}
}
inline bool exists_test2 (const std::string& name) {
return ( access( name.c_str(), F_OK ) != -1 );
}
inline bool exists_test3 (const std::string& name) {
struct stat buffer;
return (stat (name.c_str(), &buffer) == 0);
}
view raw gistfile1.cpp hosted with ❤ by GitHub


Ngồi phân tích cái snippet cuối coi.
Hàm stat có nhiệm vụ fill các thông tin của file ở tham số 1 và tham số thứ 2 (có cấu trúc là struct stat) nhờ vậy ta có thể kiểm tra file có tồn tại hay không :D

No comments:

Post a Comment