Lista filer och mappar i flera nivåer

C/C++

2 svar · 416 visningar · startad av no1atall

Medlem sedan nov. 20012 inlägg
Trådstart#1

Jag använder klassen CFileFind för att lista filer och mappar under en sökväg. Jag vill att när den hittar ett bibliotek alltså när CFileFind::IsDirectory = TRUE ska den starta om funktionen för den nya sökvägen. Tills den gått igenom alla nivåer under originalsökvägen. När jag kallar samma funktion igen kraschar programmet. Vet inte hur jag ska göra, hjälp! Tacksam för svar.

Medlem sedan apr. 20003 971 inlägg
#2

Vad du ska göra? Tja, du kan posta koden du använder, t.ex. Då blir det lite lättare att felsöka.

Medlem sedan nov. 20012 inlägg
#3

CString Dir = "C:\\";

	CString szCur;
	CFileFind f;
	CString Dir_old=Dir;

	if (strcmp(Dir.Mid(Dir.GetLength()-1),"\\\\")==0)
		Dir += "\*";
	else
		Dir += "\\\\\*";

	/\*char svPath\[MAX_PATH+1\];
	lstrcpyn(svPath,Dir,MAX_PATH-1);
	if(svPath\[lstrlen(svPath)-1\]=='\\\\')
		lstrcat(svPath, "\*");
	else
		lstrcat(svPath, "\\\\\*");\*/

	if (f.FindFile(Dir))
	{
		BOOL bDone =FALSE;
		while (!bDone)
		{
			if (!f.FindNextFile()) { bDone = TRUE; }
			if (f.IsDirectory()!=0 && strcmp(f.GetFileName(),".")!=0) {
				// Ja, det är ett bibliotek.
    // Sök efter underbibliotek och filer i den nya mappen.
    // Hur gör jag detta ?
			}
		}
		
	}
259 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)