Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

suchen

Empfohlene Antworten

Veröffentlicht

hallo

kann mir hier vielleicht jemand helfen?

mein problem:

soll alle dateien auf einer festplatte raussuchen die "projektID.xml" heißen.

leider hab ich gar keinen plan wie man das macht. hab schon einen teil quelltext. mir fehlt nur der algorithmus der die einzelnen orderner durchsucht.

wie kann man das in c++ realisieren?

kann immer nur die ordner im root durchsuchen aba keine unterordner. benutzt man dafür die funktionen _findfirst und _findnext?

wer was weiß bitte unbedingt melden

:confused:

Auf welchem System ????

muss es umbedingt C++ sein ???

ansonsten kannst du ja bei Unix einfach find einsetzten (als shell skript, das von deinem C-Programm aufgerunfen wird)

Ja, es muß C++ sein (zumindest bei mir habe das gleiche Problem :))

Tja, die gibt's ein Problem.

Die Windows-File-Funktionen bieten keine Routinen

zur rekursiven Dateisuche.

Vorschlag (mit _findfirst() und _findnext()):

Du musst im Stammverzeichnis anfangen und (*)überprüfst dort,

ob die datei vorhanden ist. Ist dies der Fall, merkst du dir

den Pfad, und durchsucht dann das Verzeichnis nach

Verzeichnissen. In jedem Verzeichnis startest du dann wieder

bei (*).

Tip: Such im MSDN nach SCANDIR.C !!!

Viel Spaß, werd mal schauen, ob ich dass nicht besser

hinkriege als Mikroschrott im Beispiel! :D

Das wäre net, habe gerade erst mit C++ angefangen und bin da nicht sooo der Held...

:)

Na dann, hier mal ein Versuch:


#include "stdio.h"

#include "io.h"

#include "string.h"

#include "afxcoll.h"


void AddResult(const char* lpszPath, const char* lpszFilename)

{

    printf("%s%s\n", lpszPath, lpszFilename);

}


void SearchDirectory(const char* lpszDirectory, const char* lpszFilename)

{

	_finddata_t finddata;

	long Handle;

	// dateien suchen

	char* lpszWildcard = new char[strlen(lpszDirectory) + strlen(lpszFilename) + 1];

	strcpy(lpszWildcard, lpszDirectory);

	strcpy(lpszWildcard + strlen(lpszDirectory), lpszFilename);

	Handle = _findfirst(lpszWildcard, &finddata);

	if (Handle != -1)

		do

		{

			AddResult(lpszDirectory, finddata.name);

		} while (_findnext(Handle, &finddata) == 0);

	_findclose(Handle);

	delete lpszWildcard;

	// unterverzeichnisse suchen

	lpszWildcard = new char[strlen(lpszDirectory) + strlen("*.*") + 1];

	strcpy(lpszWildcard, lpszDirectory);

	strcpy(lpszWildcard + strlen(lpszDirectory), "*.*");

	Handle = _findfirst(lpszWildcard, &finddata);

	if (Handle != -1)

		do

		{

			if ((finddata.attrib & _A_SUBDIR) && (finddata.name[0] != '.'))

			{

				char* lpszSubDir = new char[strlen(lpszDirectory) + strlen(finddata.name) + strlen("\\") + 1];

				strcpy(lpszSubDir, lpszDirectory);

				strcpy(lpszSubDir + strlen(lpszDirectory), finddata.name);

				strcpy(lpszSubDir + strlen(lpszDirectory) + strlen(finddata.name), "\\");

				SearchDirectory(lpszSubDir, lpszFilename);

				delete lpszSubDir;

			}

		} while (_findnext(Handle, &finddata) == 0);

	_findclose(Handle);

	delete lpszWildcard;

}


int main(int argc, char* argv[])

{

	SearchDirectory("C:\\Programme\\Microsoft Visual Studio\\", "*.cpp");

	return 0;

}

Ich bin davon ausgegangen, dass du das ohne MFC machst,

also hab ich dass mal "in richtigem C" geschrieben.

Ich hoffe, dein Stack ist groß genug für ein paar rekursive

Aufrufe. :D

Muchas Gracias,

habin 17 Min feierabend, deshlab werde ich das morgen testen...

*froi*

// Freitag morgen, fast 9 in Deutschland:

FUNKTIONIERT :cool:

<FONT COLOR="#a62a2a" SIZE="1">[ 31. August 2001 08:58: Beitrag 1 mal editiert, zuletzt von InsanityX ]</font>

hat bei mir auch geklappt musste aba ganz schön was weg lassen

danke dann

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.