Zum Inhalt springen

MFC - Dateien löschen


Empfohlene Beiträge

Hallo.

Hat soweit funktioniert bis auf die GetFileTime.

Kann ich in der Funktion gleich mitgeben in welchen Zeitformat er es mir anzeigen soll? oder wie kann ich abfragen ob die Datei älter als 3 Tage ist?

Hab da so meine Probleme mit der Zeitformatkonvertierung :)

Kannst du mir da nochmal helfen?

Danke!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Kann ich in der Funktion gleich mitgeben in welchen Zeitformat er es mir anzeigen soll?

Mit "Anzeigen" hat das gar nichts zu tun. GetFileTime erwartet einen Zeiger auf eine FILETIME Struktur.

oder wie kann ich abfragen ob die Datei älter als 3 Tage ist?

Aus einer FILETIME Struktur kannst du dir eine Instanz von CTime bauen. Mit CTime::GetCurrentTime bekommst du die aktuelle Zeit. Wenn du zwei CTime-Instanzen voneinander abziehst, bekommst du ein CTimeSpan-Objekt, das die Dauer zwischen den beiden Zeiten enthält. Mit CTimeSpan::GetDays erhältst du schließlich die Anzahl der vollständigen Tage.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich glaub ich bin zu bescheuert:


 FILETIME ftCreate, ftAccess, ftWrite, ftDiff;

  HANDLE fhandle;

  CTime ftActual;


fhandle = CreateFile(cst_file, GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);

GetFileTime(fhandle, &ftCreate, &ftAccess, &ftWrite);

ftActual = CTime::GetCurrentTime();

ftDiff = ftActual - ftCreate.dwHighDateTime;

 

error C2593: 'Operator -' ist mehrdeutig Fehler beim Ausführen von cl.exe.

Ich weiss die Strukturen sehen anders aus aber wie bekomme ich diese einheitlich?

Kannst du mir mal ein Beispielcoding geben, meine MSDN ist auch nicht vollständig installier von daher habe ich da auch probleme beispiele anzusehen!

Link zu diesem Kommentar
Auf anderen Seiten teilen


FILETIME ftCreate = {0};

HANDLE fhandle = CreateFile( // usw.

GetFileTime(fhandle, &ftCreate, 0, 0);

CTime actual = CTime::GetCurrentTime();

CTime create(ftCreate);

CTimeSpan diff = actual - create;

LONGLONG days = diff.GetDays();

Hi,

Hier hat er aber immer in days den Wert 0 ...

das kann aber nicht sein da z.B. ein File am 11.08.04 erstellt wurde..

actual = {time=1092646920}

create = {time=1092639385}

diff = {time=???}

hmm?? was ist noch falsch?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

Hier hat er aber immer in days den Wert 0 ...

das kann aber nicht sein da z.B. ein File am 11.08.04 erstellt wurde..

actual = {time=1092646920}

create = {time=1092639385}

diff = {time=???}

hmm?? was ist noch falsch?

Das einzige was daran falsch ist, ist dass du sagst eines der Daten waere 11.08.04 :)

Es ist beides der 16.

Goos

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das einzige was daran falsch ist, ist dass du sagst eines der Daten waere 11.08.04 :)

Es ist beides der 16.

Goos

aber ich habe das file am 11.08 erzeugt *grml* bzw. es wurde von einem anderne programm erzeugt..

edit:

**ARGS ich habe den Fehler gefunden :-( Kagg Methode... er hat immer das gleiche file eingelesen und die datei die er hatte war immer von heute *grml*

Link zu diesem Kommentar
Auf anderen Seiten teilen

aber ich habe das file am 11.08 erzeugt *grml* bzw. es wurde von einem anderne programm erzeugt..

Dann passt wahrscheinlich dein

fhandle = CreateFile(cst_file, GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FI LE_ATTRIBUTE_NORMAL,NULL);

nicht so recht und du schaust aufs falsche File :)

Du kannst dein Datum ja testhalber auch mal Formatieren und siehst so wenigstens, ob du ueberhaupt das richtige bekommst.

Ein Beispiel dafuer waere:

CString s = a.Format( "%d, %B %Y %H:%M" );

Goos

edit:

...na gut, dann hat sich ja alles erledigt :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...