Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: [Dev-C++] alikansioiden määrä

JussiR [28.02.2008 10:27:47]

#

Miten C++:lla voi laskea esim kuinka monta kansiota ja alikansiota ja niiden alikansioita jne. on C - asemassa?

Legu [28.02.2008 13:28:33]

#

Kun nyt Windowssista on kyse niin MSDN on hyvä lähde.
Tuolta löytyi esimerkki, josta sai pienellä muutoksella tällaisen:

#include <stdio.h>
#include <windows.h>

int main(void)
{
	WIN32_FIND_DATA ffd;
	HANDLE hFind = INVALID_HANDLE_VALUE;

	hFind = FindFirstFile("C:\\*", &ffd);

	if (hFind == INVALID_HANDLE_VALUE)
	{
		DWORD dwError = GetLastError();
		printf("FindFirstFile meni vikaan (%u)\n", dwError);
		return dwError;
	}

	if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
		printf(("%s\n"), ffd.cFileName);
	}

	while (FindNextFile(hFind, &ffd) != 0)
	{
		if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
			printf(("%s\n"), ffd.cFileName);
		}
	}

	DWORD dwError = GetLastError();
	if (dwError != ERROR_NO_MORE_FILES)
	{
		printf("FindNextFile meni vikaan (%u)\n", dwError);
	}

	FindClose(hFind);
	return dwError;
}

Tuosta puuttuu noiden alihakemistojen listaus, mutta jätämpä sinullekin jotain tekemistä.

Toimi kivasti MinGW:n Linux-versiolla käännettynä ja Winen kautta ajettuna.

JussiR [28.02.2008 16:41:54]

#

kIITOs!

Joo kyllä mä tuon osasinkin jo tehdä, mutta en tuota alihakemistojen listausta.

Metabolix [28.02.2008 16:43:55]

#

Rekursio-opas, hakemistojen läpikäynti. Huomaa myös ladattava lähdekoodipaketti. Pascal-versiosta löytyy tuo hakemistolistaus, sen ja tuon ylläolevan avulla sietäisit osata itse. (Jos jotain haluaa, saa kyllä luvan itsekin tehdä jotain sen eteen.)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta