Announcement

Collapse
No announcement yet.

Ordner regelmäßig leeren & Speichepfad stimmt nicht

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ordner regelmäßig leeren & Speichepfad stimmt nicht

    Hey,

    wie kann man das am besten realisieren, das sich der Inhalt eines Ordners in regelmäßigen Abständen löscht und wie macht man das am besten mit der Zeit?
    Zeit aus der Zeit des Betriebssystemes lesen oder aus einer Datenbank oder sonst wo her?
    Es handelt sich dabei nur um Log-Dateien, die halt ab und an mal gelöscht werden sollten und das halt automatisch.

    Zudem habe ich irgendwie ein Problem mit dem Speicherpfad von Exceptions.
    Das ganze sieht ungefähr so aus:

    Code:
    public static string path = string.Empty;
    string data = "Ein paar Informationen";
    
    try
    {
        if (!Directory.Exists("Exceptions"))
        {
            Directory.CreateDirectory("Exceptions");
        }
    
        using (var streamWriter = File.CreateText(Path.Combine(path, data)))
        {
            // Inhalt in die Datei schreiben
        }
    }
    catch (Exception)
    { 
        // blabla
    }
    Den Pfad kann man halt auch ebend ändern aber das Problem ist, das der Pfad immer! eine Ebene höher ist, also wenn der eigentlich im Ornder Exceptions, im Projektverzeichnis sein sollte, dann ist er eine Ebene darüber, also in Debug und nicht im Ordner Debug/Exceptions.
    Zudem wird der Ordner auch nicht erstellt, wenn man den Pfad ändert aber wieso funktioniert das so nicht?

    Wo könnte man solche Ausnahmen denn eigentlich am besten speichern, wenn man das ganze verkaufen würde?

  • #2
    aber das Problem ist, das der Pfad immer! eine Ebene höher ist,
    Wo ist der Zusammenhang zwischen path und dem Exceptions Ordner den du anlegst? Im Beispiel ist keiner. Und warum benutzt du etwas das du Data nennst und damit vermutlich die Daten darstellen willst als Dateinamen? Ich glaube du solltest dein Beispiel nochmal überarbeiten und was sinnvolleres zeigen so kann man da kaum was draus ablesen.

    Wo könnte man solche Ausnahmen denn eigentlich am besten speichern, wenn man das ganze verkaufen würde?
    Als Default im AppData Folder des Users (dort in einem Unterordner für deine Applikation). Das sollte aber in den Settings deiner Anwendung dann auch noch änderbar sein.

    [Highlight=C#]string logDirectory = Path.Combine(Environment.GetFolderPath(Environment .SpecialFolder.ApplicationData), Path.GetFileNameWithoutExtension(System.AppDomain. CurrentDomain.FriendlyName));[/Highlight]

    Wenn es rechnerabhängig sein soll und nicht mit dem User roamen soll dann nimm LocalApplicationData anstatt ApplicationData.
    Wenn es nicht User abhängig sein soll nimm CommonApplicationData anstatt ApplicationData.

    Comment


    • #3
      wie kann man das am besten realisieren, das sich der Inhalt eines Ordners in regelmäßigen Abständen löscht und wie macht man das am besten mit der Zeit?
      Deine Anwendung prüft beim Start/Ende, ob in dem Verzeichnis Dateien sind, die gelöscht werden sollen und nimmt ggf. das löschen vor
      Christian

      Comment


      • #4
        @Ralf
        Ich gucke morgen noch mal, bin grad leider nicht daheim und kann dementsprechend auch den Code nicht so mal ebend hier reinschreiben.

        @Christian
        Ja, so hatte ich das auch vor aber wie könnte man das realisieren? Warscheinlich ist es irgendwie sinnvoll, wenn die irgendwie so alle 2-4 Wochen geleert werden aber wie kann man das prüfen? Geht das mit FileInfo? Nur kann ich mir irgendwie nicht vorstellen, wie man das mit dem neuen Monat immer prüfen soll oder denke ich da zu kompliziert?
        Wenn bspw. der 28 ist und von heute an, dann wäre ja in 2 Wochen der 11, das halt ebend 30 und 31 berücksichtigt wird, Schaltjahr etc.

        Comment


        • #5
          Das aktuelle Datum holen,
          davon 4 Wochen abziehen,
          Datum der Datei holen,
          Ist es kleiner als das oben berechnete Datum -> Datei löschen

          Dafür gibt es Datumsfunktionen im Framework, die berücksichtigen bei einem Abzug von 4 Wochen/x-Tagen auch die monatlichen Kalendertage usw.
          Zuletzt editiert von Christian Marquardt; 29.10.2014, 17:47.
          Christian

          Comment

          Working...
          X