检查文件是否在 C++ 中是只读的

Check if a file is readonly in c++

我想在 windows 系统

的 c++ 中检查 .ini 文件是否只读

例如:

if(file == readonly){
  //Do this
}

到目前为止我已经尝试过这个并且它有效:

ofstream ofs(filename); //test to see if the file successfully opened for writing or not

但结果是它会删除 .ini 文件并将文件留空

PS: 1.it 不是重复的 2. 我在整个互联网上进行了搜索,发现了一些可能有效的示例,但结果没有按预期编译。

如果您使用 Windows,您可以使用:

DWORD attr = GetFileAttributes(filename);
if (attr != INVALID_FILE_ATTRIBUTES) { 
    bool isReadOnly = attr & FILE_ATTRIBUTE_READONLY; 
}