【发布时间】:2013-09-08 12:50:59
【问题描述】:
我正在用 C++ 编写一个文件系统程序。现在我尝试编写一个文件查找功能。首先我希望程序能够在所有系统中搜索文件。我使用 FindFirstFile 和 FindNextFile Windows API 函数。首先我应该调用 FindFirstFile ,并给它一个目录,它必须在其中搜索文件。但我不知道,如何指定目录以便 FindFirstFile 在所有系统中搜索。 请帮我解决这个问题。我将非常感谢任何帮助。
【问题讨论】:
我正在用 C++ 编写一个文件系统程序。现在我尝试编写一个文件查找功能。首先我希望程序能够在所有系统中搜索文件。我使用 FindFirstFile 和 FindNextFile Windows API 函数。首先我应该调用 FindFirstFile ,并给它一个目录,它必须在其中搜索文件。但我不知道,如何指定目录以便 FindFirstFile 在所有系统中搜索。 请帮我解决这个问题。我将非常感谢任何帮助。
【问题讨论】:
这是我发现的here:
您不能在 lpFileName 输入字符串中使用尾部反斜杠 () 对于 FindFirstFile,因此如何搜索根目录可能并不明显 目录。如果您想查看文件或获取根的属性 目录,以下选项将适用: 检查文件 根目录,您可以使用
"C:\*"并通过 使用 FindNextFile。要获取根目录的属性,请使用 GetFileAttributes 函数。注意在字符串“\?\”之前添加 不允许访问根目录。
要获取可用驱动器的列表,您可以使用GetLogicalDriveStrings()。这将返回一个以空结尾的字符串的双空结尾列表。例如,假设您的机器中有驱动器 A, B 和 C。返回的字符串如下所示:
A:\<nul>B:\<nul>C:\<nul><nul>
【讨论】: