dateibrowser
-
wie kann ich ordner, unterordner und dateien aus einem verzeichnis auslesen?
ich will die dateinen später in einer konsolenanwendung folgendermaßen ausgeben können:
geben sie einen ordner ein: C:/folder/ folder: +subfolder1 -file1 -file2 +subfolder2 +subfolder3 +music -song1 -song2
es geht mir um die funktionen, mit denen ich die dateihirarchie auslesen kann...
-
-
und wie soll das damit gehen? ich hab doch die dateinamen von den unterverzeichnissen nicht, wie soll ich dann nach ihnen suchen?
PS: ich glaube beispielcode wäre an dieser stelle echt hilfreich
-
Jetzt komm, stell dich nicht so an
Auf oberster Ebene kannst du alle Dateien und Verzeichnisse auflisten. In den WIN_32_FINDDATA Strukturen siehst du an den Attributen, obs eine Datei oder ein Verzeichnis ist. Wenns ein Verzeichnis ist, machst mit dem neuen Pfad rekursiv weiter.
Gibt sicherlich 10 Millionen Beispiele im Nezt, such doch einfach mal. Warum sollte jemand noch ein Beispiel schreiben?
-
habs schon... zumindest im kopf, mal gucken was beim tippen rauskommt
-
ich hab folgende funktion im internet gefunden:
bool copyDirectory(const std::wstring& source_folder, const std::wstring& target_folder){ std::wstring new_sf = source_folder + L"\\*"; WCHAR sf[MAX_PATH+1]; WCHAR tf[MAX_PATH+1]; wcscpy_s(sf, MAX_PATH, new_sf.c_str()); wcscpy_s(tf, MAX_PATH, target_folder.c_str()); sf[lstrlenW(sf)+1] = 0; tf[lstrlenW(tf)+1] = 0; SHFILEOPSTRUCTW s = { 0 }; s.wFunc = FO_COPY; s.pTo = tf; s.pFrom = sf; s.fFlags = FOF_SILENT | FOF_NOCONFIRMMKDIR | FOF_NOCONFIRMATION | FOF_NOERRORUI | FOF_NO_UI; int res = SHFileOperationW( &s ); return res == 0; }
nach ein wenig rumprobieren und in der doku nachschauen ergeben sich allerdings noch einige fragen:
wie kann ich diese funktion umschreiben, sodass...
...die dateinen verschoben, nicht kopiert werden
...bereits existierende dateien nicht ersetzt, sondern übersprungen werden
-
gamer8o4 schrieb:
nach ein wenig rumprobieren und in der doku nachschauen ergeben sich allerdings noch einige fragen:
wie kann ich diese funktion umschreiben, sodass...
...die dateinen verschoben, nicht kopiert werden
...bereits existierende dateien nicht ersetzt, sondern übersprungen werdenWeiter in der Doku suchen
Die Antwort drängt sich ja fast schon auf. Ich geb dir einen Tipp:
s.wFunc = FO_COPY;
Hmm, wie könnte man daraus bloß ein Move machen? Und wie findet man sowas selbständig in der Doku?