webForumDet fria alternativet

Lista filer och mappar i flera nivåer

C/C++

2 svar · 395 visningar · startad av no1atall

Medlem sedan nov. 20012 inlägg
Frågan#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.

------------------
"Finns det något annat ord för synonym?"

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.

------------------
- Swey
Med reservation för upprörda känslor.

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 ?
			}
		}
		
	}

------------------
"Finns det något annat ord för synonym?"

265 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)