Exemplo n.º 1
0
void TestFileFinder(void)
{
	BeginTests();

	CFileUtil		cFileUtil;
	CArrayString	aszFiles;

	aszFiles.Init(1);
	cFileUtil.FindFilesWithExtension("Finder", "txt", &aszFiles);
	AssertInt(5, aszFiles.NumElements());
	AssertStringCase("C:\\gameengine\\Test\\TestBaseLib\\TestBaseLib\\Finder\\Ants.txt", aszFiles.Get(0)->Text(), FALSE);
	AssertStringCase("C:\\gameengine\\Test\\TestBaseLib\\TestBaseLib\\Finder\\File.txt", aszFiles.Get(1)->Text(), FALSE);
	AssertStringCase("C:\\gameengine\\Test\\TestBaseLib\\TestBaseLib\\Finder\\Last.txt", aszFiles.Get(2)->Text(), FALSE);
	AssertStringCase("C:\\gameengine\\Test\\TestBaseLib\\TestBaseLib\\Finder\\Marching.txt", aszFiles.Get(3)->Text(), FALSE);
	AssertStringCase("C:\\gameengine\\Test\\TestBaseLib\\TestBaseLib\\Finder\\Ninja.txt", aszFiles.Get(4)->Text(), FALSE);
	aszFiles.Kill();

	aszFiles.Init(1);
	cFileUtil.FindFilesWithNameContaining("Finder", "Mar", &aszFiles);
	AssertInt(3, aszFiles.NumElements());
	AssertStringCase("C:\\gameengine\\Test\\TestBaseLib\\TestBaseLib\\Finder\\Glenmark.wav", aszFiles.Get(0)->Text(), FALSE);
	AssertStringCase("C:\\gameengine\\Test\\TestBaseLib\\TestBaseLib\\Finder\\March.rar", aszFiles.Get(1)->Text(), FALSE);
	AssertStringCase("C:\\gameengine\\Test\\TestBaseLib\\TestBaseLib\\Finder\\Marching.txt", aszFiles.Get(2)->Text(), FALSE);
	aszFiles.Kill();

	aszFiles.Init(1);
	cFileUtil.FindAllDirectories("Finder", &aszFiles);
	aszFiles.QuickSort();
	AssertInt(5, aszFiles.NumElements());
	AssertStringCase("C:\\gameengine\\Test\\TestBaseLib\\TestBaseLib\\Finder\\.", aszFiles.Get(0)->Text(), FALSE);
	AssertStringCase("C:\\gameengine\\Test\\TestBaseLib\\TestBaseLib\\Finder\\..", aszFiles.Get(1)->Text(), FALSE);
	AssertStringCase("C:\\gameengine\\Test\\TestBaseLib\\TestBaseLib\\Finder\\Lord", aszFiles.Get(2)->Text(), FALSE);
	AssertStringCase("C:\\gameengine\\Test\\TestBaseLib\\TestBaseLib\\Finder\\Rising", aszFiles.Get(3)->Text(), FALSE);
	AssertStringCase("C:\\gameengine\\Test\\TestBaseLib\\TestBaseLib\\Finder\\Storm", aszFiles.Get(4)->Text(), FALSE);
	aszFiles.Kill();

	aszFiles.Init(1);
	cFileUtil.FindFilesWithExtension("Finder", "rar", &aszFiles, TRUE);
	AssertInt(6, aszFiles.NumElements());
	AssertStringCase("C:\\gameengine\\Test\\TestBaseLib\\TestBaseLib\\Finder\\Lord\\1.rar", aszFiles.Get(0)->Text(), FALSE);
	AssertStringCase("C:\\gameengine\\Test\\TestBaseLib\\TestBaseLib\\Finder\\Rising\\2.rar", aszFiles.Get(1)->Text(), FALSE);
	AssertStringCase("C:\\gameengine\\Test\\TestBaseLib\\TestBaseLib\\Finder\\Storm\\3.rar", aszFiles.Get(2)->Text(), FALSE);
	AssertStringCase("C:\\gameengine\\Test\\TestBaseLib\\TestBaseLib\\Finder\\Ants.rar", aszFiles.Get(3)->Text(), FALSE);
	AssertStringCase("C:\\gameengine\\Test\\TestBaseLib\\TestBaseLib\\Finder\\Echo.rar", aszFiles.Get(4)->Text(), FALSE);
	AssertStringCase("C:\\gameengine\\Test\\TestBaseLib\\TestBaseLib\\Finder\\March.rar", aszFiles.Get(5)->Text(), FALSE);
	aszFiles.Kill();

	aszFiles.Init(1);
	cFileUtil.FindAllFiles("Finder", &aszFiles, TRUE);
	AssertInt(12, aszFiles.NumElements());
	aszFiles.Kill();

	TestStatistics();
}
void CImageCelsSource::AddDiskFileSources(char* szPathName, char* szFileNameContains, char* szImageName, CImageCelSource* pcCelSource)
{
	CFileUtil				cFileUtil;
	CArrayString			cFileNames;
	int						i;
	CChars*					pszName;
	CImageSourceDiskFile*	pcDiskFile;
	CChars					szNiceName;
	int						iIndex;
	int						iLen;

	if (!szFileNameContains)
	{
		return;
	}
	iLen = (int)strlen(szFileNameContains);
	if (iLen == 0)
	{
		return;
	}

	cFileNames.Init(32);
	cFileUtil.FindFilesWithNameContaining(szPathName, szFileNameContains, &cFileNames, FALSE);

	for (i = 0; i < cFileNames.NumElements(); i++)
	{
		pszName = cFileNames.Get(i);
		pcDiskFile = UMalloc(CImageSourceDiskFile);

		if (szImageName)
		{
			szNiceName.Init(*pszName);
			cFileUtil.RemovePath(&szNiceName);
			cFileUtil.RemoveExtension(&szNiceName);
			iIndex = szNiceName.Find(0, szFileNameContains);
			iIndex += iLen;
			szNiceName.RemoveFromStart(iIndex);
			szNiceName.Insert(0, szImageName);

			pcDiskFile->Init(pszName->Text(), szNiceName.Text());
			szNiceName.Kill();
		}
		else
		{
			pcDiskFile->Init(pszName->Text());
		}
		AddSource(pcDiskFile, pcCelSource);
	}

	cFileNames.Kill();
}