Click here to Skip to main content
15,904,023 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Why i am not getting latest folder of directory

This is my code

C++
CString ClatestfoldernameDlg::FindLatestFolder(CString path)
{
	 CString Folder;
         CString LatestFolder = _T("D:\\xyz");
	 FILETIME newtime,oldtime;
	 WIN32_FIND_DATA ffd;
	 HANDLE hFind = INVALID_HANDLE_VALUE;

	 CString strWildcard(path);
	 strWildcard += _T("\\*");

	 // Find the first file in the directory.
	 hFind = FindFirstFile(strWildcard, &ffd);
	 FindNextFile(hFind, &ffd);
	 FindNextFile(hFind, &ffd);

	 //AfxMessageBox(ffd.cFileName);
	 oldtime=ffd.ftLastWriteTime;

	do
	{
      if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
      {
		  newtime = ffd.ftLastWriteTime;
		  Folder = ffd.cFileName;
		  if(CompareFileTime(&newtime,&oldtime)==1)
		  {
				LatestFolder=Folder;
		  }
		  oldtime = newtime;
      }
   }
   while (FindNextFile(hFind, &ffd) != 0);

return LatestFolder;
}
Posted
Updated 14-Apr-13 13:38pm
v2

1 solution

First of all, LatestFolder is not declared, even though you return this object. Also, you don't make provisions for the case when no folders are found. This information should be enough to fix your code.

—SA
 
Share this answer
 
Comments
amityadav4a 14-Apr-13 19:40pm    
Updated my question. I declared LatestFolder as a global variable in my program. still i am not getting correct result.
Sergey Alexandrovich Kryukov 14-Apr-13 22:12pm    
Of course it won't be a solution. Now, if no folders are found, it will return initial value. You could initialize it with 0, which could indicate "not found". You may have other problems. Use the debugger; the problem is pretty simple...
—SA

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900