FindNextFile()
-
Oh man ich depp hab zuerst ff.GetPathName() aufgerufen und dann erst ff.FindNextFile().
Sorry!
Trotzdem danke dEUs!
MFG
Hansi
-
Ich hab jetz doch noch ne frage: Wie kann ich denn einfach nach ner datei suchen ohne den datei-typ festzulegen?
Hiermit hab ichs versucht:
ff.FindFile("\\\\168.192.255.43\\freigegebenerOrdner\\*.*",0); ff.FindNextFile(); name=ff.GetFileName();Dann hat name allerdings den wert ".". Ich hab auch schon versucht ma im forum danach zu suchen aber irgendwie kommen da viel weniger ergebnisse, wie als ich vor 3 Wochen gesucht habe.
thx
Hansi
-
lol
Les dir mal die Dokumentation zu CFileFind in der MFC durch ...
-
A pointer to a string containing the name of the file to find. If you pass NULL for pstrName, FindFile does a wildcard (.) search.
Das Problem is wie übergebe ich NULL. Dann hab ich theoretisch keinen Pfad und das is schlecht...

mfg
thxHansi
-
Example This small program recurses every directory on the C:\ drive and prints the name of the directory. #include <afxwin.h> #include <iostream> using namespace std; void Recurse(LPCTSTR pstr) { CFileFind finder; // build a string with wildcards CString strWildcard(pstr); strWildcard += _T("\\*.*"); // start working for files BOOL bWorking = finder.FindFile(strWildcard); while (bWorking) { bWorking = finder.FindNextFile(); // skip . and .. files; otherwise, we'd // recur infinitely! if (finder.IsDots()) continue; // if it's a directory, recursively search it if (finder.IsDirectory()) { CString str = finder.GetFilePath(); cout << (LPCTSTR) str << endl; Recurse(str); } } finder.Close(); } void main() { if (!AfxWinInit(GetModuleHandle(NULL), NULL, GetCommandLine(), 0)) cout << "panic!" << endl; else Recurse(_T("C:")); }
-
danke! Sorry,das ich dich hier so belästige, aber wie kann ich denn nur nen bestimmten pfad durchsuchen?
thx
Hansi
-
sorry bin dicht. Pfad wie oben!
-
Das klappt bei mir nich, son schrott. Hier das is mein code:
CFileFind ff; CString pa=_T("\\\\127.0.0.1\\Meine Musik"); CString m_path(pa); pa+=_T("\\*."); ff.FindFile(pa); BOOL b=ff.FindNextFile(); pa=ff.GetFilePath(); MessageBox(pa,NULL,MB_OK);Würde mir reichen wenn du morgen zurückschreibst, kann dann ich verstehn...

thx
Hansi
-
*.* !
-
und ne schleife! siehe bsp! hier is grad ne fette hausparty am start, deswegen so kurz

-
Also er findet jetzt die letzte datei. Ich denk ma sollte das programm funktionieren. Also dann ma vielen dank!!!
m_path=_T("C:\\Dokumente und Einstellungen\\Hansi\\Desktop\\MeineMusik") m_path+=_T("\\*.*"); //ff.FindFile(m_path); //BOOL b=ff.FindNextFile(); //Diese zwei befehle bringen ja nicks weil er ja säter sowieso weitersucht... BOOL bWorking = ff.FindFile(m_path); while (bWorking) { bWorking = ff.FindNextFile(); // skip . and .. files; otherwise, we'd // recur infinitely! if (ff.IsDots()) continue; // if it's a directory, recursively search it if (ff.IsDirectory()) { pa = ff.GetFilePath(); x=1; OnButton1(); } } pa=ff.GetFileName(); ff.Close(); MessageBox(pa,NULL,MB_OK);Ich muss den code jetz so umschreiben, dass er einen ordner mit nem anderen vergleich. das wird ne arbeit...
NajaMFG
Hansi
-
Hm, so schwer wird das net ... Machst ne Klasse, die alle wichtigen Informationen aufnimmt, wie zb Dateiname, -grösse, -datum etc. Dann machste zwei Listen dieser Klasse. Füllst Liste 1 mit dem Verzeichnis A und Liste 2 mit Verzeichnis B und lässt dann vergleichen ... Fertig.
-
Morgen!Wie mach ich denn so ne klasse die das alles aufnehmen kann? Von welcher BasisKlasse muss ich die dann ableiten?
thx
mfg
Hansi
-
Von keiner ... Einfach ne allgemeine Klasse erstellen ...
-
Ja ich hab nur noch nie sowas gemacht(außer ma ne socketklasse). Wie macht man das denn da? hast du vielleicht nen simplen beispiel code. den ich dann weiterverarbeiten könnte?
thx
MFG
Hansi
-
uff. Les dir ma n vernünftiges C++-Buch durch ...
-
Naja. Dann versuch ich halt einfach ma so... Ich hab den petzold daheim, aber der is ja nur für Win32 und visual c++ in 21 tagen.
Danke trotzdem!!
MFG
Hansi
-
so ein wenig c++ kenntnisse braucht man für vc++ doch. der assistent erledigt nicht alles! ab und an muss man auch selbst code schreiben anstatt ihn generieren zu lassen.
du solltest erst ein mal kleine beispiele mit ganz normalem c++ üben. damit du überhaup begreifen kannst, was vc++ da im hintergrund alles macht.
falls du dir die mühe nicht machen willst und irgendeine oberklasse suchst, dann nimm CObject. und falls du jetzt fragen willst warum unbedingt CObject, dann mach dir vorher lieber die o.g. mühe!
übrigens wenn du jetzt fragen willst, wo du ein tutorial finden kannst, oder welches buch man dir empfielt, dann poste noch nicht sofort... such hier erst einmal!