xml*_*lmx 2 windows filesystems winapi runtime-error createfile
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);
Run Code Online (Sandbox Code Playgroud)
我应该如何正确传递参数?
如果您想要一个卷句柄(用于I/O控制代码),您需要删除尾部斜杠.
为了获取根目录的句柄,您需要保留尾部斜杠并FILE_FLAG_BACKUP_SEMANTICS
在dwFlagsAndAttributes
参数中传递标志.这在MSDN页面的"目录"标题下记录.例如,如果您打算打电话GetFileInformationByHandle
或打算,这就是您想要做的GetFileInformationByHandleEx
.
但是,通常,您不会打开根目录的句柄以列出文件.相反,您将使用FindFirstFile
/ FindNextFile
或其中一个相关功能.