#include <windows.h>
#include <iostream>
bool MakeReadonly(const char* folderPath)
{
DWORD attrs = GetFileAttributesA(folderPath);
return SetFileAttributesA(folderPath, attrs | FILE_ATTRIBUTE_READONLY) != 0;
}
int main()
{
std::string folderPath = "C:\\Users\\Username\\Desktop\\mydir";
if (MakeReadonly(folderPath.c_str()))
{
std::cout << "Folder is readonly now";
}
}
功能返回true,但是MakeReadonly
文件夹不会变为可读。,但是,如果您将文件通往文件而不是文件夹的路径到
mydir
函数,则此文件将被读取。应该做些什么使此功能也适用于文件夹?
您无法在Windows上读取目录。正如@yksisarvinen所说,仅在目录上没有尊重只读的属性。如果您想在文件夹中读取所有内容,则可以递归将文件夹中的所有文件设置为仅读取,但这不会影响添加到文件夹中的新文件。这里是递归设置所有文件以在文件夹中读取的代码: