4
我想檢查字符串name
是否指向可以打開和讀取的文件,因此它可以是常規文件或符號鏈接。如何使用boost :: filesystem檢查文件是常規文件還是符號鏈接?
我第一次用這樣的:
std::ifstream in(name.c_str());
if (!in.is_open()) {
// throw exception!
}
但當name
簡稱目錄名稱並沒有拋出異常。
現在我使用的是這樣的:
if (!fs::exists(name) || fs::is_directory(name)) {
// throw exception!
}
但它會(大概)不是,如果它是一個符號鏈接到一個目錄扔。這同樣如此:
if (!fs::is_regular_file(name) && !fs::is_symlink(name)) {
// throw exception!
}
有沒有更好的方法?