CreateFile上的MSDN页面说:字符串"\\.\C:\"
可用于打开C:卷的文件系统。但是,以下代码始终返回错误:ERROR_PATH_NOT_FOUND。
HANDLE h = CreateFile(L"\\\\.\\C:\\", FILE_READ_ATTRIBUTES,
FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, 0, OPEN_EXISTING, 0, 0);
我应该如何正确传递参数?
答案 0 :(得分:5)
如果您想要一个卷句柄(用于I / O控制代码),您需要删除尾部斜杠。
为了获取根目录的句柄,您需要保留尾部斜杠并在FILE_FLAG_BACKUP_SEMANTICS
参数中传递dwFlagsAndAttributes
标志。这在MSDN页面的“目录”标题下记录。例如,如果您计划拨打GetFileInformationByHandle
或GetFileInformationByHandleEx
,则可以执行此操作。
但是,通常,您不会打开根目录的句柄以列出文件。相反,您可以使用FindFirstFile
/ FindNextFile
或其中一个相关功能。
答案 1 :(得分:0)
尝试删除尾部斜杠:
L"\\\\.\\C:"