В исходнике фара, filelist.cpp, функция FileList::ProcessKey, начиная со строки 1818, видим:
Code: Select all
if (api::GetFileAttributes(strTempName)==INVALID_FILE_ATTRIBUTES)
{
string strFindName;
string strPath;
strPath = strTempName;
CutToSlash(strPath, false);
strFindName = strPath+L"*";
api::enum_file Find(strFindName);
auto ItemIterator = std::find_if(CONST_RANGE(Find, i) { return (i.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0; });
if (ItemIterator != Find.end())
strTempName = strPath + ItemIterator->strFileName;
}
Когда я в дебаггере поменял логику, то сразу стал вызываться PutFilesW.