Selektion variabler Dateinamen
-
Hallo zusammen,
ich bin daran ein Programm zu schreiben, welches aus verschiedenen Dateien den Inhalt liest und diese in ein neues File schreibt.
Mein Problem ist nun aber, dass es sich um zusammengesetzte Filenamen handelt. Sprich, die ersten 3 Zeichen des Filenamens sind konstant, der rest Variabel.In C++ gibt es doch bestimmt eine Funktione, bei welcher ich die Konstanten angeben kann, und die Funktion dann alle Files (Bsp: fl_*) im mitgegebenen Ordner zusammensucht und übergibt, nicht ?
Kann mir da jemand weiterhelfen wie ich das machen/angehen könnte ?
Danke für allfällige Hilfe & Gruss
-
gibet net im standard.
-
Es muss doch irgendwie möglich sein, einer Funktion etwas wie "C:\\datei\\fl_*" zu übergeben, und die Funktion selektiert dann in einer Schlaufe alle Files, die diesem Kriterium entsprechen in einen char-Array....
-
Nicht ohne spezielle Libraries.
-
und hat jemand einen Plan, wie man dass doch schaffen oder wo man die entsprechenden Infos bekommen könnte ?
Zudem kann man ja in C++ Betriebssystemaufrufe integrieren... die Frage ist nur welche und wie ....
-
-
Dankschön für die Links.
Ich habe unterdessen gesehen, dass man mit Visual Studio .Net bzw. mit Framework diese zugriffe machen kann (funktioniert bis jetz ansatzweise).
Weiss jemand, wie das mit diesem Framework funktioniert oder wo man befriedigende Infos bekommt ?
-
Hallo osi, so wie es aussieht, bist du auf Windows unterwegs. Die systemabhängigen Infos findest du im MSDN. Ein Startpunkt für dein Problem könnte hier sein. Nun ein kleines Beispiel:
#include <iostream> #include <vector> #include <string> #include <iterator> #define WIN32_LEAN_AND_MEAN #include <windows.h> using namespace std; void findeDateien(vector<string> &ergebnis, string wo) { WIN32_FIND_DATA info; HANDLE gefunden = FindFirstFile(wo.c_str(), &info); if(gefunden != INVALID_HANDLE_VALUE) do { if( !(info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) )//Ordner machen nicht mit ergebnis.push_back(info.cFileName); }while(FindNextFile(gefunden, &info)); FindClose(gefunden); } int main() { vector<string> test; findeDateien(test, "C:\\WINDOWS\\*.exe"); copy(test.begin(), test.end(), ostream_iterator<string>(cout, "\n")); cin.get(); }
-
Hey Super... dankschön... das funktioniert....
nun nur noch eine kleine Frage: Wieso funktioniert dass nur, wenn ich auf das Windows Verzeichnis zugreife ? Das sollte doch eigentlich auch z.B. für "C:\\bananenbaum\*.txt" funktionieren...
-
Also schorsch, es hat nun endlich trotz allem Funktioniert.
Dein Coding ist tip-top... danke schön... das Problem: somit gelöst...
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.