Datei - Alle Verzeichnisse sowie Dateinamen ausgeben?
-
Tach auch,
ich suche eine Function um einen Datenträger z.B. Eine CD auszulesen. Dabei soll die Function alle daruf enhaltenen Dateien sowie die vorhandenen Verzeichnisse zurückgeben?
Wie stell ich das an??
Danke.
ILM
-
Hi,
CFileFind dürfte dir helfen.
Hier ist ein schönes Beispiel aus MSDN:
#include <afx.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:")); }
Gruß, Volle.
-
Bitte zu den FAQ, danke images/smiles/icon_smile.gif
-
Hier die MFC-Version
int threadklasse::ladefiles(CString nextdir) { CString curdir = nextdir; CString appname; CString ftpfilename; CString winfilename; CFileFind ftpFind; BOOL bContinue = ftpFind.FindFile(curdir + "\\*.*"); while(bContinue > 0) { bContinue = ftpFind.FindNextFile(); appname = ftpFind.GetFileName(); if (appname == "." || appname == "..") { } else { if (ftpFind.IsDirectory() != 0) { nextdir = curdir + "\\" + appname; ladefiles(nextdir); } else { // In appname steht der Filename // Mit ftpFind.GetFilePath()); bekommt man den Pfad und den Filenamen } } } ftpFind.Close(); return 1; }
[ Dieser Beitrag wurde am 18.12.2002 um 00:51 Uhr von Unix-Tom editiert. ]
-
ich denke die antworten reichen ihm... bittte in die FAQ images/smiles/icon_smile.gif
-
Ergänzungsdiskussion: http://www.c-plusplus.net/forum/viewtopic-var-t-is-138772.html