Automatische Sicherung mit C# Script

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Automatische Sicherung mit C# Script

      Für den Anfang mal als Konsolenanwendung:

      C#-Quellcode

      1. using System.IO;
      2. namespace Backup
      3. {
      4. class Program
      5. {
      6. static void Main(string[] args)
      7. {
      8. string file = @"D:\paths.txt";
      9. FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read);
      10. StreamReader sr = new StreamReader(fs);
      11. string[] paths = new string[2];
      12. while(!sr.EndOfStream)
      13. {
      14. string path = sr.ReadLine().ToString();
      15. if (path != string.Empty)
      16. {
      17. paths = path.Split('|');
      18. Copy(paths);
      19. }
      20. }
      21. }
      22. private static void Copy(string[] paths)
      23. {
      24. FileAttributes fa = File.GetAttributes(paths[0]);
      25. if (fa.HasFlag(FileAttributes.Directory))
      26. {
      27. CopyDirectory(paths);
      28. }
      29. else if (!fa.HasFlag(FileAttributes.Directory))
      30. {
      31. File.Copy(paths[0], paths[1], true);
      32. }
      33. }
      34. private static void CopyDirectory(string[] paths)
      35. {
      36. DirectoryInfo diSource = new DirectoryInfo(paths[0]);
      37. DirectoryInfo diDestination = new DirectoryInfo(paths[1]);
      38. if (!diSource.Exists)
      39. {
      40. // Überleg Dir was passieren soll, wenns das Quell- Verzeichnis nicht gibt.
      41. }
      42. if (!diDestination.Exists)
      43. {
      44. Directory.CreateDirectory(paths[1]);
      45. }
      46. FileInfo[] files = diSource.GetFiles();
      47. foreach (FileInfo fi in files)
      48. {
      49. string temppath = Path.Combine(paths[1], fi.Name);
      50. fi.CopyTo(temppath, true);
      51. }
      52. }
      53. }
      54. }
      Alles anzeigen
      Was gesichert werden soll, trägst Du einfach in die Datei "paths.txt" ein (hier im Beispiel liegt die auf "D:\") - nach dem Format:

      QuellDatei (oder Verzeichnis)|Zielverzeichnis

      und je Zeile eine Angabe; also beispielsweise so:

      D:\quelldatei1.txt|F:\sicherung1\
      D:\quelldatei2.txt|F:\sicherung1\
      D:\quellverzeichnis|F:\sicherung2\
      D:\quelldatei2.txt|F:\sicherung2\

      Unterverzeichnisse werden aktuell nicht beachtet und ausprobiert habe ich das ganze auch noch nicht :P sollte aber funktionieren.
    • Toll, nur für mich erstmal doch noch halbwegs Bahnhof...
      Dachte es gibt zugleich so eine Art kompakte Einführung in das C# bzw. das programmieren. Was braucht man, wie geht los, so ungefähr...

      Hab jetzt gerade Google befragt.. mhh da gibts viele Einträge...
      Bin gerade auf diese Seite gegangen.
      guidetocsharp.de/Default.aspx

      Aber vielleicht habt ihr auch noch etwas besseres?

      Vielleicht auch noch eine kürzere übersichtlichere Einführung? Sodaß man sich dann nochmal besser in dieses scheinbar recht ausführliche einarbeiten kann?
    • Homer J. S. schrieb:

      Oder mach es mit AutoIt (hat ein sehr steile Lernkurve ;) )
      Link Download: autoitscript.com/
      Link Forum: autoit.de

      Gruß
      Homer J. S.
      den ersten Link gibts vermutlich nicht in deutsch, oder?



      Ansonsten muß ich mich demnächst mal in Ruhe mit dem ganzen auseinander setzen, versuchen überall einwenig mich einzulesen...

      g0su schrieb:

      Naja, das bringt ihm ja sonst net viel :D DesktopApps sind da ja keine groß möglich - oder?

      Nur um mal Mißverständnisse auszuschließen, was meinst Du mit DesktopApps ?

      Im Moment bin ich mir bei vielen Ausdrücken immer oft nicht ganz klar was wirklich damit gemeint ist.
      Am Ende hab nämlich ich eine andere Vorstellung davon als derjenige der einen Ausdruck gerade benutzt.


      Vielen Dank aber an alle für die Anregungen.

      Mecki
    • Mecki schrieb:

      den ersten Link gibts vermutlich nicht in deutsch, oder?
      Leider nicht. Allerdings gibt es die Hilfe auch in Deutsch
      => Link: autoit.de/onlinehilfe/




      g0su schrieb:

      Naja, das bringt ihm ja sonst net viel DesktopApps sind da ja keine groß möglich - oder?
      Wenn du mit "Desktop App" ein "normales" Programm mit GUI meinst, dann geht das sehr wohl mit AutoIt. Mit GDI+ sind auch sehr aufwendige GUI's möglich. Man kann auch mal schnell eine Konsolen-Anwendung schreiben. Schnittstellen wie z.B. TCP, RS232, usw... sind auch "einfach" zu integrieren. Kompilieren kann man in 32BIT und oder 64BIT. Die Binär-Datei (*.exe) ist sofort (ohne zusätzliche Insallation) auch auf einem anderem System ausführbar. Zudem ist AutoIt kostenfrei.

      Wenn du mit "Desktop App" aber ein Programm meinst, was Plattform unabhängig (Bsp.: Windows Core auf Raspberry PI) läuft, dann geht das leider nicht mit AutoIt.


      Ich muss allerdings zugeben, das nach Angaben einiger User, AutoIt-Code nicht so schnell ist wie C# oder C++.

      Gruß
      Homer J. S.
    • g0su schrieb:

      @Mecki: Kannst Dich ja melden, was Du nun lernen möchtest.
      Ganz ehrlich ich kann da im Moment wenig einchätzen da ich ja nichts kenne.
      Aber, zum einen hatte ich in der von mir verlinkten Seite gelesen das diese C# wohl Vorzüge verschiedener Sprachen in sich vereint, und zum anderen wohl die aktuellste oder modernste?, ist. Und man soll sie ja wohl auch relativ leicht erlernen können. Wohl auch weniger schwierig mit Com Schnittstellen und anderen Dingen im Computern sein...
      Zum anderen hatte ich hier ja auch schon gelesen das C# wohl die am weitesten verbreitetste sein soll...
      Spricht also alles dafür das man sich wohl am besten dann damit befassen sollte.

      Von Ausbildung her kenne ich Maschinensprache, Assembler, und hatte auch mal in einer Fortbildung eine "höhere" Sprache kennen gelernt. Allerdings weiß ich den Namen nicht mehr. Wir hatten das damals auf Ataris, meine ich, kennen gelernt, die nur für diesen Lehrzweck existierten, dienten, und ansonsten auch zu dem Zeitpunkt schon Altertum und eigentlich nur im Museum zu finden waren.
      Tja aber lang ist's her und danach nie mehr angewendet, daher ist da nicht mehr viel.
      Ich hab nur noch soviel in Erinnerung, man wußte dann, man hatte Stapelspeicher, Stacks, hier und da plus einem "Buch" mit Befehlslisten und konnte, bzw. mußte dann mit seiner Kreativität sich was damit einfallen lassen. if, sen, move, this... usw... irgendwie sowas... In Klammern (in Klammern wird nicht ausgeführt) so viele möglichst sinnvolle Komentare dahinter, damit man selber oder auch andere schnell nachvollziehen konnten was man da mal gemacht, bzw. sich bei gedacht hatte...

      Tja, aus dem mach jetzt mal was.......... :rolleyes: :P 8o :D ;) :)

      bissel dünn irgendwie, nicht? :D

      Naja, nur mit irgendwas müssen wir hier ja arbeiten wenn wir irgendwas erreichen wollen... in nächster Zeit mal schauen, was sich so ergibt. Muß jetzt auch bald an die Computer wegen Win10 update...

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Mecki ()

    • Ein ähnliches Tool habe ich ebenfalls geschrieben. Allerdings in Perl. Gibt es auch als ausführbare .exe-Datei.
      Findet ihr hier: digioso.com/cgi-bin/digisync.pl

      Das kommt auch mit Unterverzeichnissen klar. :)
      Eine Version, die auch mit Dateien/Verzeichnissen in Unicode (z.B. japanische Schriftzeichen) klarkommt, gibt es bei mir auf Anfrage. Dafür muss man sich aber dann Perl installieren.
      Leg dich nie mit einem BAOD an, oder du bist selber dran.

      Das Leben ist grausam.
      Wenn es mal nicht grausam ist, ist es grausamer.

      [IMG:http://www.digioso.org/gfx/banner_low.jpg]