Zeitstempel like touch
-
hallo,
ich möchte gern den zeitstempel von dateien anpassen können. in linux gibt es das rpogramm 'touch' mit dem man dies realisieren kann. auch für windows habe ich dieses programm gefunden aber auch hier ist dies kommandozeile. dies soll nicht sein. ich möchte es gern in einer GUI einbauen, brauche aber den passenden befehl dazu.
#include <iostream> #include <string> using namespace std; FILE *touch; string pfad, komplett,datum; string kompletter_pfad; int main() { cout << "Pfad eingeben: "; cin >> pfad; cout << "Datum eingeben MMDDhhmm: "; cin >> datum; komplett=("touch.exe -t ")+(datum)+(" ")+(pfad)+("\\*.*"); kompletter_pfad=komplett; touch=popen(kompletter_pfad.c_str(),"r"); }
das ist im prinzip das was ich habe, ist aber kommandozeile und nutzt die datei touch.exe (könnte man sogar in batch realisieren) soll aber nicht sein.
habt ihr eine idee für einen befehl? mit dem ich einen zeitstempel meiner wahl setzen kann?
-
Der Sourcecode zu touch ist frei erhältlich. Wahrscheinlich auch der für das Windows touch.
-
dachte ich mir auch so, fand ihn aber über google nicht (habe wirklich gesucht
)
//edit: alles was ich habe ist der link wo ich dies mal her hatte:
http://www.weihenstephan.de/~syring/win32/UnxUtils.alt//edit2 ok, habe ihn gefunden: http://optusnet.dl.sourceforge.net/sourceforge/touch/touch.cpp
danke
-
Versuch es mal dort. 'touch' gehört zu den 'coreutils', als musst du danach suchen.
-
Jupp, ich hab nochmal geschaut. Da sollten die Quellen von 'touch' dabei sein:
-
die seite is ja gnadenlos überlastet, habe es aber hier noch gefunden:
http://gd.tuwien.ac.at/opsys/linux/gnu/gnusrc/coreutils/coreutils-5.2.1.tar.gz
-
Für Windows gibt es das natürlich auch:
http://gnuwin32.sourceforge.net/packages/fileutils.htm
-
JAWOLLLLL
volltreffer
-
es geht aber mot bordmitteln. dazu ist bei uns der befehl copy da.
-
volkard schrieb:
es geht aber mot bordmitteln. dazu ist bei uns der befehl copy da.
wie meinst du das?
hast du evtl. ein kleines beispiel für mich??? :p
-
enno-tyrant schrieb:
hast du evtl. ein kleines beispiel für mich??? :p
sytem("copy /b *.* +");
-
das war eigentlich ironisch gemeint
, da ich keinen copy-parameter kenne der den zeitstempel ändert. (auch /b tut dies nicht, da copy /b bedeutet daß du eine binärdatei kopieren willst)
//edit stelle aber fest das das '+' die tut, aber was genau macht es??? ändert es NUR das datum oder öffnet/schließt es die datei??
-
kann mir jemand evtl. helfen diese funktion so umzuschreiben daß ich sie nutzen kann??:
BOOL SetFileToCurrentTime(HANDLE hFile) { FILETIME ft; SYSTEMTIME st; BOOL f; GetSystemTime(&st); // gets current time SystemTimeToFileTime(&st, &ft); // converts to file time format f = SetFileTime(hFile, // sets last-write time for file (LPFILETIME) NULL, (LPFILETIME) NULL, &ft); return f; }
sie setzt den aktuellen zeitstempel auf eine datei, ich muß mir aber ein daum aussuchen können
BOOL SetFileTime( HANDLE hFile, const FILETIME* lpCreationTime, const FILETIME* lpLastAccessTime, const FILETIME* lpLastWriteTime );
das habe ich als erklärung gefunden (kann damit auch nicht gerade viel anfangen)
vielen dank für eure hilfe
-
das kann doch nicht wirklich soooooo schwer sein.oder doch ???