无法制作文件夹RealOnly

问题描述 投票:0回答:1
我正在尝试制作一个可读取文件夹,为此我正在使用以下代码:

#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所说,仅在目录上没有尊重只读的属性。如果您想在文件夹中读取所有内容,则可以递归将文件夹中的所有文件设置为仅读取,但这不会影响添加到文件夹中的新文件。
这里是递归设置所有文件以在文件夹中读取的代码:

c++ windows winapi filesystems
1个回答
0
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.