gpt4 book ai didi

c++ - FindFirstFile 在根路径上失败

转载 作者:可可西里 更新时间:2023-11-01 09:20:27 24 4
gpt4 key购买 nike

我正在使用以下代码获取有关文件系统目录的信息:

LPCTSTR pStrPath = L"D:\\1";
WIN32_FIND_DATA wfd;
HANDLE hDummy = ::FindFirstFile(pStrPath, &wfd);
if(hDummy != INVALID_HANDLE_VALUE)
{
//Use 'wfd' info
//...

::FindClose(hDummy);
}
else
{
int error = ::GetLastError();
}

除非我指定根路径,否则代码工作正常:

  • D:\ - 错误代码 ERROR_FILE_NOT_FOUND
  • D: - 错误代码 ERROR_FILE_NOT_FOUND
  • \\SRVR-1\share - 错误代码 ERROR_BAD_NET_NAME
  • \\SRVR-1\share\ - 错误代码 ERROR_BAD_NET_NAME
  • \\SRVR-1\HiddenShare$ - 错误代码 ERROR_BAD_NET_NAME

但它适用于以下情况:

  • D:\1 - 没有错误
  • \\SRVR-1\share\1 - 没有错误
  • \\SRVR-1\HiddenShare$\1 - 没有错误

知道为什么吗?

最佳答案

FindFirstFile() 用于枚举目录的内容。因此,它应该与文件模式一起使用,例如 D:\*

当您使用 D:\1 时,您只是在使用非常严格的文件模式 (1) 来过滤 D:\ 中的文件>,但是当您只使用 D:\D: 时,根本就没有模式!

共享资源也是如此。请注意,\\SRV-1\share 不算作模式,因为 \\SRV-1 不能被视为目录。

关于c++ - FindFirstFile 在根路径上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21742849/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com