mikrocontroller.net

Forum: PC-Programmierung Datum einer Datei verändern


Autor: laspalmas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: laspalmas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Angst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Such mal bei Google nach "Date Edit" ;-)

Gruß

Autor: laspalmas (Gast)
Datum:

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.