如果我創建一個包含「hello.txt的」,然後將下面的代碼將輸出「hello.txt的」目錄:在FindFirstFile調用中「<」是什麼意思?
#include <windows.h>
#include <iostream>
int _tmain(int argc, _TCHAR* argv[])
{
WIN32_FIND_DATA findData = {};
HANDLE hFind = ::FindFirstFile(L"<.txt", &findData);
if (hFind != INVALID_HANDLE_VALUE)
{
std::wcout << findData.cFileName << std::endl;
while (::FindNextFile(hFind, &findData))
{
std::wcout << findData.cFileName << std::endl;
}
::CloseHandle(hFind);
}
else
{
std::wcout << "FindFirstFile: " << ::GetLastError() << std::endl;
}
return 0;
}
但爲什麼「<」呼叫像「*」來FindFirstFile
?
MSDN表示只有通配卡租船人在此通話中有效(即?或*)。
https://msdn.microsoft.com/en-us/library/windows/desktop/aa364418%28v=vs.85%29.aspx
編輯:
似乎是非常相關的FindFirstFile undocumented wildcard or bug?
這是一個通配符。可能最好的地方是看到'<', '>'和'''通配符記錄(從內部的Windows Name.c源文件複製)是.NET Reference Source,[PatternMatcher.cs](http://referencesource.microsoft.com /#System/services/io/system/io/PatternMatcher.cs)源文件 – 2015-03-13 11:34:00
因此,行爲與*不完全相同,因爲它表示「DOS_QM匹配任何單個字符,或遇到一段時間或結束名稱字符串,將表達式推進到連續DOS_QM集合的末尾。「 – paulm 2015-03-13 12:12:06