Hardlinks von allen Dateien eines Ordner incl. Unterordnern erstellen
-
Ist es denn in C++ einfacher?
Müsste ja sowieso stark auf eurer Wissen zurückgreifen.
-
In C++ ist aufgrund der erweiterten Möglichkeiten vieles einfacher, also ja.
Kommt natürlich auch darauf an, wie viel Erfahrung man mit der jeweiligen Sprache schon gemacht hat.Aber sowohl in C wie auch in C++ kannst du auf WinAPI-Funktionen zurückgreifen (zum Finden der Ordner FindFirstFile und FindNextFile - in C++ wrappst du das sinnvollerweise in einer einzigen Funktion).
Um fsutil.exe aufzurufen, kannst du ShellExecute, CreateProcess oder schlicht system benutzen.
Bleibt noch, die Ordnernamen zu parsen - das ist in C++ mit std::string natürlich einfacher.
-
Was ist denn System unabhängiger? Also es sollte dann schon auf XP, Vista, Win 7 und vielleicht auch auf der nächsten Windows Version laufen.
-
Alle genannten Funktionen gibt es mindestens seit Windows 95.
Wobei "auf allen Windows-Versionen" jetzt nicht unbedingt meiner Definition von systemunabhängig entspricht.
-
Wobei "auf allen Windows-Versionen" jetzt nicht unbedingt meiner Definition von systemunabhängig entspricht.
Das stimmt natürlich, mir reicht das aber.
Hab mich jetzt für C++ entschieden und auch schon kleine Fortschritte gemacht.
Hier mal der Code für die aktuelle Uhrzeit:
#include <windows.h> #include <stdio.h> int main() { SYSTEMTIME lt; GetLocalTime(<); printf("The local time is: %02d-%02d-%02d_%02d-%02d\n\n", lt.wYear, lt.wMonth, lt.wDay, lt.wHour, lt.wMinute); system("pause"); }Und hier mal um den letzten Ordner zu finden:
#include<stdio.h> #include <windows.h> #include <iostream> //# include <stdlib> using namespace std; int main(){ HANDLE fHandle; WIN32_FIND_DATA dir_date_old; fHandle=FindFirstFile("C:\\Ordner\\*",&dir_date_old); do { } while (FindNextFile(fHandle,&dir_date_old)); cout <<dir_date_old.cFileName <<"\n\n"; //Ausgabe, nur zu Testzwecken FindClose(fHandle); system("pause"); }Ich möchte jetzt 2 Variablen (Strings?) erstellen, in folgender Form:
Variable1=c:\Ordner\dir_date_old.cFileName;
Variable2=c:\Ordner\LocalTime;Wie bekomme ich das hin?
-
Wie kann ich das aktuelle Datum in eínem String speichern?
Mein Versuch:
#include <stdio.h> #include <windows.h> #include <iostream> using namespace std; int main(){ SYSTEMTIME lt; GetLocalTime(<); std::string date=lt.wYear; }Bekomme folgenden Fehler: invalid conversion from `WORD' to `const char*'
-
Lies mal das hier
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39488.html
Das ist aus der FAQ (Einmal Zahl nach String und zurück)
-
Danke Braunstein,
das hat funktioniert.SYSTEMTIME lt; GetLocalTime(<); ostringstream date; date << lt.wYear <<"-" <<lt.wMonth <<"-" <<lt.wDay <<"_" <<lt.wHour <<"-" <<lt.wMinute; string date_today(date.str()); std::string dir_date_today = "c:\\Ordner\\"+date_today;Habe jetzt das Problem, dass er mir das aktuelle Datum so anzeigt: 2009-10-27_22-8
anstatt: 2009-10-27_22-08
Das wird er Mitsicherheit auch beim Monat, Tag und der Stunde machen. Wie funktioniert denn das?
-
Du kannst die Stream-Manipulatoren 'setw' und 'setfill' dafür benutzen, s. z.B. http://www.c-plusplus.net/forum/viewtopic-var-t-is-251961-and-highlight-is-setw.html
-
Th69 schrieb:
Du kannst die Stream-Manipulatoren 'setw' und 'setfill' dafür benutzen
Damit hats funktioniert. Besten Dank Th69.
Möchte von einem Quellordner die Verzeichnisstruktur in einen Zielordner kopieren.
In einem String hab ich den Link vom Quellordner und in einem Weiteren den vom Zielordner.Als Batch Datei ginge dies:
xcopy Quelle Ziel /t /eWie kann ich das elegant lösen?