2016-06-22 7 views
-1

ausführen Ich muss ein C# -Programm erstellen, das prüft, ob input.txt vorhanden ist (innerhalb einer Zeit von 5 Minuten), wenn innerhalb von 5 Minuten die input.txt ist erstellt es kopiert Inhalte in output.txt. Dann muss input.txt gelöscht werden (und für 10000 Läufe iterieren).C# -Programm, um zu überprüfen, ob die Datei existiert/Timeout und

Ich mache dies, um einen Lizenz-Neustart innerhalb des Programms zu vermeiden, der im Vergleich zur Programmausführung ziemlich lange dauert.

Ich versuchte mit Timern, Filewatcher aber völlig verloren .. kann jemand helfen?

Vielen Dank im Voraus.

Flow chart

+5

Willkommen bei StackOverflow! Was hast du bisher versucht und wo bist du stecken geblieben? Bitte denken Sie daran, dass SO kein kostenloser Codierungsdienst ist, sondern hier, um Ihnen bei _spezifischenProgrammierungsproblemen zu helfen. –

+0

gehen müssen, um Ihren Code zu sehen – Nonagon

+0

nur darauf hin, wenn wir das 5-Minuten-Intervall und 10000 Iterationen nehmen wir kommen mit etwa 34 Tage, dass dies läuft ........ sowieso. Sehen Sie sich Threading und System.IO.File.Exists, System.IO.File.Delete, System.IO.File.AppendText an. Sollte ziemlich trivial zu implementieren sein. – Sorceri

Antwort

0

Arbeiten mit dem Flussdiagramm als Referenz und sie allein konnte ich mit diesem Stück Code kommen:

string inputPath = "<input.txt file path>"; 
string outputPath = "<output.txt file path>"; 

for (int iterator = 0; iterator < 10000; iterator++) 
{ 
    bool exists = false; 
    long startTimeMillis = DateTime.Now.Ticks/TimeSpan.TicksPerMillisecond; 

    while (!exists) 
    { 
     if (DateTime.Now.Ticks/TimeSpan.TicksPerMillisecond - startTimeMillis >= 5 * 60 * 1000) Environment.Exit(0); 

     if (File.Exists(inputPath)) 
     { 
      exists = true; 

      FileStream f = File.Open(inputPath, FileMode.Open); 
      String output = String.Empty; 
      for (int i = 0; i < f.Length; i++) 
      { 
       output += (char)f.ReadByte(); 
      } 
      f.Dispose(); 

      File.WriteAllText(outputPath, output); 
      File.Delete(inputPath); 
     } 
    } 
} 

Environment.Exit(0); 

Ich kann nicht garantieren, dass mein Code 100% ist anwendbar für Ihre Zwecke, aber es sollte nicht zu schwer zu implementieren sein. Bei Bedarf können Sie diesen Code innerhalb eines Threads ausführen.

+0

Vielen Dank Keve1227 – vipin