Forum: PC-Programmierung Datum einer Datei verändern


von laspalmas (Gast)


Lesenswert?

Hallo!

Kennt jemand ein Progrämmchen, das das Datum einer Datei verändern kann.
Ich habe es probiert mit der Funktion "FileSetDate" von CBuilder aber es 
hat nicht funkionniert. Die Funktion liefert immer den Fehlercode 87????
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  short age;
  int iFileHandle;
  int error_code;
  age = (1999<<9) | (12<<5)|6;
  age = 0xFFFF;

   if ((iFileHandle = FileOpen("sample.doc", fmOpenRead)) == NULL)
     MessageBox(0,"","error by opening the file",0);
   else
   {
     error_code = FileSetDate(iFileHandle, age);
     if(error_code)
        MessageBox(0,"","FileSetDate error",0);
     FileClose(iFileHandle);
   }
}

MFG
laspalmas

von Peter (Gast)


Lesenswert?

die api Funktion für windows ist SetFiletime.

Bist du dir bei FileSetDate sicher das die Datei offen sein kann? dann 
Beim schliesen wird ja das LastAccessTime neu gesetzt.
Weche Zeit möchtest du überhaupt setzten?
CreationTime, astAccessTime, LastWriteTime ?

von Peter (Gast)


Lesenswert?

hatte ich ja glatt übersehen:

short age;
age = (1999<<9) | (12<<5)|6;
age = 0xFFFF;

das Passt doch alles nicht zusammen? Bei welchem System wird dann die 
Zeit als Short gespeichert? Dann Überschreibt das age = 0xFFFF; die 
andere Berechnung.

(1999<<9) Sollte auch nicht mehr in Short reinpassen.

von laspalmas (Gast)


Lesenswert?

Danke für die schnelle Antwort.
laut Builderhilfe: Age ist der Zeitstempel, welcher der angegeben Datei 
zugewiesen werden soll.Ich bin davon ausgegangen dass es ein Dos-Datum 
ist.
Beim close bleibt das Datum unverändert.

 Sorry das "age = 0xFFFF;" war nur ein patch habe ich vergessen. Mir war 
wichtig zuerst zu sehen ob sich was tut und est dann kann ich das Datum 
richig einstellen. Ich möchte ein beliebiges Datum reinschreiben.
Ich versuche es mal mit SetFileTime.
Gruß

von Angst (Gast)


Lesenswert?

Such mal bei Google nach "Date Edit" ;-)

Gruß

von laspalmas (Gast)


Lesenswert?

Vielen Danke "Angst". Es hat funktionniert.
Ich hatte keine Angst beim Installieren des "Edit Date" ;-)
Gruß
laspalmas

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.