void main(int argc, char **argv)
{
std::string filename,strPNG,strTXT;
wchar_t InputPath[65535] = L"C:\\MyFolder";
wchar_t szDir[65535];
wchar_t dir[65535];
_WIN32_FIND_DATAW FileData;
HANDLE hList;
swprintf(szDir, L"%s\\*", InputPath );
hList = FindFirstFileW( szDir, &FileData);
SetCurrentDirectory( InputPath );
while(1)
{
if ( hList == INVALID_HANDLE_VALUE )
{
cout << "No files be found.\n\n";
}
else
{
if (!FindNextFile(hList, &FileData))
{
if (GetLastError() == ERROR_NO_MORE_FILES)
break;
}
swprintf(dir, L"%s\\%s", InputPath, FileData.cFileName);
wprintf( L"%s\n", dir);
}
}
FindClose(hList);
}
wsprintf 和 swprintf
wsprintf 其實是一個巨集,對應著兩個 Windows API:wsprintfA 和 wsprintfW。最前面的那個w,不是寬字符(wide)的“w”,而是Windows的“w”。
而 swprintf 是 sprintf 的寬字符版,是 C 的標準輸入輸出。而造成這個問題的原因,則在於 Windows 的 wsprintf,並不支援浮點數……
沒有留言:
張貼留言