我正在开发某种Windows shell命名空间扩展(NE)。我的扩展为文件和文件夹提供自定义上下文菜单元素。我需要在我的NE下创建一个新文件。我正在尝试创建一个文件:
auto flags = O_WRONLY | O_CREAT | O_TRUNC | O_BINARY | O_CLOEXEC;
auto fd = _wopen(L"c:\\test.txt", flags , 0666);
我还尝试使用"\\?\"
前缀:
auto flags = O_WRONLY | O_CREAT | O_TRUNC | O_BINARY | O_CLOEXEC;
auto fd = _wopen(L"\\\\?\\c:\\test.txt", flags , 0666);
无论如何返回的文件描述符是否定的,而errno是EACCES
- '权限被拒绝'
我错过了什么?
答案 0 :(得分:2)
用户无法在C:\(无海拔)中创建文件。
shell扩展使用当前用户的凭据运行,因此您无法在那里创建文件。