Hector Santos replied to Kerem Gümrükcü
27-Jan-10 12:34 PM

Stefan's suggestion still applies. However, where (count) do you
begin? If its a single process/thread, you might as well use a
FindFirstFile()/FindNextFile() to get the highest count using a "New
File*.txt" specification, then +1 for the new file. If the applet is
24x7, then you can get that high count at startup.
Off hand:
int GetNextCount()
{
const char *pszSpec = "new file(*).txt";
int nHigh = 0;
WIN32_FIND_DATA fd;
HANDLE ff = FindFirstFile(pszSpec, &fd);
if (ff != INVALID_HANDLE_VALUE) {
do {
int n = atoi(fd.cFileName+9);
if (n > nHigh) nHigh = n;
} while(FindNextFile(ff,&fd));
FindClose(ff);
}
return nHigh+1;
}
Usage:
CString nfn;
nfn.Format("New File(%d)",GetNextCount())
Fine tune this to your specific paths/names. But has Stefan
highlighted, if you going to be having multiple access points,
threads, processes, etc, then doing a exclusive file open with
CreateFile() will work (after getting the highest count), then use a
loop to increment again if the file was created after the
findfirst/next search.
--
HLS