FindNextFile()
-
Ok das wäre dann auch die erklärung dafür, wieso das mit dem netzwerk net geklappt hat... dummer fehler von mir

Aber das problem mit ff.FindnextFile() kommt immer ncoh...thx
Hansi
-
Hm, wohin verweist die Fehlermeldung denn?
-
Also der titel des fensters ist "Microsoft Visual C++ Debug Library"
Da kommt dann dieser rotekreis mit dem weißen X. (Wie bei der MessageBox()-Funktion)
Dann kommt der text "Debug Assertion Failed
Program: pfadangabe des programms
File: FileFind.cpp
Line: 354"
Dann noch ein text und dann 3 buttons:"Abbrechen", "Wiederholen","Ignorieren"Und wie gesagt wenn ich ff.FindNextFile() wegmache kommt das nich mehr.
thx
Hansi
-
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