OK, guys, I see your point and I'm ready to do a comparative analysis, but I need your help to substitute my existing methods with the "better ones". So I'm currently using the following technique.

1. I have a global variable for the array that contains all paths:
Code:
CStringArray* pArrConvFiles;
2. During the first pass I collect file paths into that array like this:
Code:
pArrConvFiles->Add(strFilePath);
3. Then when I need to find if a certain file is in the array during the second pass I do the following:
Code:
	for(int i = 0; i < pArrConvFiles->GetCount(); i++)
	{
		if(strFile.CompareNoCase(pArrConvFiles->GetAt(i)) == 0)
		{
			//Found it
			return TRUE;
		}
	}

	return FALSE;