Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo, gibt es eine Methode die mir alle Dateien auflistet bzw. löscht die älter als ein bestimmter Zeitpunkt sind ?

Ich will zum Beispiel einen Ordner nach Dateien durchsuchen die älter als 5 Tage sind und das diese dann gelöscht werden.

Gibt es sowas?

Wäre super! Danke :-)

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!

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.

Hi ok soweit verstanden danke :)

Die Methode GetFileTime verlangt einen filehandle.

Wie kann ich einen filehandle aus einem Pfad zur Datei erzeugen?

Ich habe bisher nur den Dateinamen in einem CString ..

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!


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?

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

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*

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 :)

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.