- 01
 - 02
 - 03
 - 04
 - 05
 - 06
 - 07
 - 08
 - 09
 - 10
 - 11
 - 12
 - 13
 - 14
 - 15
 - 16
 - 17
 - 18
 - 19
 - 20
 - 21
 - 22
 - 23
 - 24
 - 25
 - 26
 - 27
 - 28
 - 29
 - 30
 - 31
 - 32
 - 33
 - 34
 - 35
 - 36
 - 37
 - 38
 - 39
 - 40
 
                        void ff(const TCHAR *curDir)
{
	WIN32_FIND_DATA FindFileData;
	HANDLE hFind;
	TCHAR cd[MAX_PATH], res[MAX_PATH], dirname[MAX_PATH], filename[MAX_PATH];
	strcpy_s(cd, MAX_PATH, curDir);
	strcat_s(cd, MAX_PATH, "\\*.*");
	hFind = FindFirstFile(cd, &FindFileData);
	BOOL r = hFind != INVALID_HANDLE_VALUE;
	while (r) 
	{
		r=FindNextFile(hFind, &FindFileData);
		if (FindFileData.cFileName[0] != '.') try
		{
			strcpy_s(cd, MAX_PATH, curDir);
			strcat_s(cd, MAX_PATH, "\\");
			strcat_s(cd, MAX_PATH, FindFileData.cFileName);
			if (!r) // если ссылка последняя смысле handle то записываем имя файла
				strcpy_s(filename, MAX_PATH, FindFileData.cFileName);
			if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) 
				ff(cd);
			else
			{
				char* k=NULL;
				if (!r)
					k=strstr(filename,FindFileData.cFileName); // проверяем если является имя каталога подстрокой в имени файла хреначим на вывод(при том что ссылка была последней)
				// смысле на вывод хреначим вот здесь
				if (k!=NULL)
				{
					CharToOem(cd, res);
					cout<<res<<endl;
				}
			}
		}
		catch(...) 
		{
			cout<<"Can not display file name"<<endl;
		}
	} 
}