Benutzer mit den meisten Antworten
Codeoptimierung

Frage
-
Hi Leute,
ich programmiere erst seit kurzem und habe mir ein Programm für die Arbeit zusammengeschustert.
Ich sehe selbst das es nicht schön ist, aber mal abgesehen davor würde ich die einzelnen Aufgaben wie den Ping z.B. gern
in eine Funktion packen wenn das möglich ist.. habe das schon versucht, meine Vorkenntnisse aus Swift reichen hierzu aber
nicht aus. Außerdem muss ich die einzelnen Pings und Transferordnerlöschungen jeweils mehr als 50 mal hintereinander durchführen. Deshalb hoffe ich das mir jemand sagen kann, wie ich das ganze etwas eleganter lösen kann als stundenlang Copy-Paste zu drücken :)Vielen Dank im Voraus
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Net.NetworkInformation; using System.IO; namespace RemoteCheck { public partial class Form1 : Form { public Form1() { InitializeComponent(); // // //Label leeren lblPingGoogle.Text = ""; lblPingGoogleDNS.Text = ""; lblTransferlöschenGoogle.Text = ""; lblTransferlöschenGoogleDNS.Text = ""; } private void btnPing_Click(object sender, EventArgs e) { Cursor = Cursors.WaitCursor; //WaitCurser aktivieren btnTransferlöschen.Enabled = false; // Transferordner löschen Button deaktivieren // //Google Server // Ping googleServer = new Ping(); //Ping erstellen PingReply googleErgebnis = googleServer.Send("8.8.8.8"); //PingReply vom Host if (googleErgebnis.Status == IPStatus.Success) //Wenn Erfolg etc.. { lblPingGoogle.Text = "Erfolgreich"; } else { lblPingGoogle.Text = "Fehlgeschlagen"; } // //Google DNS Server // Ping googleServerDNS = new Ping(); //Ping erstellen PingReply googleServerDNSErgebnis = googleServerDNS.Send("8.8.4.4"); //PingReply vom Host if (googleServerDNSErgebnis.Status == IPStatus.Success) //Wenn Erfolg etc.. { lblPingGoogleDNS.Text = "Erfolgreich"; } else { lblPingGoogleDNS.Text = "Fehlgeschlagen"; } // // // btnTransferlöschen.Enabled = true; //Transferordner löschen Button aktivieren Cursor = Cursors.Default; //Default Cursor aktivieren } private void btnTransferlöschen_Click(object sender, EventArgs e) { Cursor = Cursors.WaitCursor; //WaitCurser aktivieren btnPing.Enabled = false; //Ping Button deaktivieren // //Google Server // string[] filePathsGoogle = Directory.GetFiles(@"c:\\testordner1\"); //Filepath festlegen foreach (string filePath in filePathsGoogle) { File.Delete(filePath); //Dateien aus Transferordner löschen } int diGoogle = Directory.GetFiles(@"c:\\testordner1\").Length; //Anzahl der Dateien aus Ordner holen if (diGoogle == 0) //Wenn 0 dann .. { lblTransferlöschenGoogle.Text = "Erfolgreich"; } else if (diGoogle == 1) //Wenn 1 dann .. { lblTransferlöschenGoogle.Text = "Es ist noch eine Datei im Tranferordner"; } else //Wenn mehr als 1 dann .. { lblTransferlöschenGoogle.Text = "Es sind noch mehrere Dateien im Transferordner"; } // //Google DNS Server // string[] filePathsGoogleDNS = Directory.GetFiles(@"c:\\testordner2\"); //Filepath festlegen foreach (string filePath in filePathsGoogleDNS) { File.Delete(filePath); //Dateien aus Transferordner löschen } int diGoogleDNS = Directory.GetFiles(@"c:\\testordner2\").Length; //Anzahl der Dateien aus Ordner holen if (diGoogleDNS == 0) //Wenn 0 dann .. { lblTransferlöschenGoogleDNS.Text = "Erfolgreich"; } else if (diGoogleDNS == 1) //Wenn 1 dann .. { lblTransferlöschenGoogleDNS.Text = "Es ist noch eine Datei im Tranferordner"; } else //Wenn mehr als 1 dann .. { lblTransferlöschenGoogleDNS.Text = "Es sind noch mehrere Dateien im Transferordner"; } // // // btnPing.Enabled = true; //Ping Button aktivieren Cursor = Cursors.Default; //Default Cursor aktivieren } } }
Antworten
-
Hallo,
wie wäre es so:
void ButtonClick() { var ok = PingTo("8.8.4.4"); if (ok) { //Erfolgreich } //Man könnte auch eine Liste anlegen und die durch pingen List<string> list = new List<string>() { "8.8.4.4", "8.8.8.8" }; foreach (var item in list) { ok = PingTo(item); } } bool PingTo(string ip) { Ping ping = new Ping(); var status = ping.Send(ip); if (status.Status == IPStatus.Success) { return true; } return false; } void TrashFolder(string path) { if (System.IO.Directory.Exists(path)) { var di = new System.IO.DirectoryInfo(path); di.Delete(true); } } void TrashFolder2(string path) { //Eine weiter möglichkeit alle Dateien und Unterordner zu löschen. Der unterschied ist das der Hauptordner bleibt var files = System.IO.Directory.GetFiles(path); if (files.Length > 0) foreach (var item in files) { System.IO.File.Delete(item); } var folders = System.IO.Directory.GetDirectories(path); if (folders.Length > 0) foreach (var item in folders) { TrashFolder2(item); } }
Gruß Thomas
13 Millionen Schweine landen jährlich im Müll
Dev Apps von mir: UWP Segoe MDL2 Assets, UI Strings- Als Antwort vorgeschlagen Ivan DragovMicrosoft contingent staff, Moderator Montag, 29. Oktober 2018 06:11
- Als Antwort markiert Ivan DragovMicrosoft contingent staff, Moderator Mittwoch, 7. November 2018 09:56