Benutzer mit den meisten Antworten
Erweiterung und Optimierung eines Backup Programms

Frage
-
Hallo liebes Forum
Das Grund Backup Programm ist soweit fertig.
Nun meine Fragen:- Wie kann ich am bwsten die einzelnen Dateien miteinander vergleichen bzw. wie kann ich es am besten implementieren. habe schon einiges versucht( Byte by Byte, hash, Dateilänge) hat alles nicht so funktioniert. habe Probleme bei der Implementierung.
- Wie bekomme ich den ausgewehlten Ordner in den Backupordner( Jetzt kopiert er nur den Inhalt des ausgewehlten Ordners.
- (Erst wenn punkt 1 und 2 gelöst wurden) Auf was muss ich achten wenn ich das Programm dann als diest verwenden möchte.
Ich denke das war es bis jetzt
und hier ist mein Aktueller code:using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.IO; namespace WpfApplication3 { /// <summary> /// Interaktionslogik für MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } static void Main() { string dirCopySourcePath = (@"C:\Users\MoserMat\Documents\BakPfad.txt"); string dirCopyTargetPath = (@"C:\Users\MoserMat\Documents\BakSpeicherort.txt"); string destDirName; string sourceDirName; //Zielpfad aus txt auslesen StreamReader file1 = new StreamReader(dirCopyTargetPath); destDirName = file1.ReadLine(); //Lesepfad aus txt lesen und Kopierfunkzion in schleife aufrufen StreamReader file2 = new StreamReader(dirCopySourcePath); { while (file2.Peek() >= 0) { sourceDirName = file2.ReadLine(); //Kopieren und Kopierfunktion aufrufen DirectoryCopy(sourceDirName, destDirName, true); } } } private static void DirectoryCopy(string sourceDirName, string destDirName, bool copySubDirs) { // Unterordner aus den verzeichnissen lesen . DirectoryInfo dir = new DirectoryInfo(sourceDirName); DirectoryInfo[] dirs = dir.GetDirectories(); if (!dir.Exists) { throw new DirectoryNotFoundException( "Source directory does not exist or could not be found: " + sourceDirName); } // Im Backupordner den zu sichenrnden Ordner erstellen wenn nicht vorhanden. if (!Directory.Exists(destDirName)) { Directory.CreateDirectory(destDirName); } // Datein lesen und in das neue Verzeichniss kopieren. FileInfo[] files = dir.GetFiles(); foreach (FileInfo file in files) { string temppath = Path.Combine(destDirName, file.Name); file.CopyTo(temppath, false); } // Bei Unterordnern an die richtige stelle kopieren. if (copySubDirs) { foreach (DirectoryInfo subdir in dirs) { string temppath = Path.Combine(destDirName, subdir.Name); DirectoryCopy(subdir.FullName, temppath, copySubDirs); } } } } }
Ihr seid der Hammer
Und ich bezeichne mich noch als Noob
LGLoki
- Bearbeitet Loki_1984 Dienstag, 17. März 2015 14:13
Antworten
-
Hallo,
zu 1.)
Sicherheit ob 2 Dateien gleich sind erhältst du nur wenn du die Dateien Byte für Byte vergleichst. Wenn du irgendwo her Hashcodes bekommen kannst, kannst du darüber zumindest feststellen ob Dateien verschiedenen sind. Ob sie gleich sind lässt sich damit jedoch nicht sagen. Beispiele fürs Vergleichen von Dateien gibt es genug im Internet. Hier ein Beispiel.zu 2.)
Hier dürfte es am einfachsten sein einfach alles in einen extra angelegten Ordner zu kopieren:DirectoryCopy(sourceDirName, System.IO.Path.Combine(destDirName, System.IO.Path.GetFileName(sourceDirName)), true); //GetFileName liefert hier den Namen des Ordners ohne dem Pfad davor
zu 3.)
Hier solltest du dich zunächst mit den grundlegenden Regeln zum Erstellen eines Dienstes vertraut machen. Wichtig sind natürlich Dinge wie der Startprozess und das es keine GUI gibt.Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort markiert Loki_1984 Donnerstag, 19. März 2015 11:51