Zum Inhalt springen

D-Ani

Mitglieder
  • Gesamte Inhalte

    20
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von D-Ani

  1. Es ist grundsätzlich kein Geheimnis dass ich das beste Gehalt in der Verwandtschaft erziele, aber auch keines das ich damit meine auch Mutter unterstütze. Manches mal muss ich aber schon darlegen das es manches mal selbstgewähltes Schicksal ist einen Verdienst zu bekommen wofür ich nicht einmal aufstehen würde. Neid etc. hat bisweilen keiner geäußert oder sich anmerken lassen, ich habe nur manches mal in Kloß im Hals wenn ich daran denke das eine Altenpflegerin bei 1400 im Monat über die Runden kommen soll und später bei einem Rentenniveau von ~45% leben "darf". Bei gleichaltrigen muss ich mir da schon verkneifen zu Fragen warum Sie sich dies antun.
  2. Nun deine mündliche Prüfung wird immernoch vor 3 Leuten vorgetragen und entsprechend bewertet. Ist es denn sicher dass einer der 3 von dort ist? Aus Erfahrung kann ich Dir sagen dass ich einen Lehrer in meinem Ausschuss hatte der nicht mein Liebling war und im Umkehrschluss war es genauso. Wenn Du fachlich alle Fragen beantworten kannst und dein Projekt gut vorstellen kannst sollte es trotz allem klappen inkl. guter Wertung.
  3. Bei uns finden sie am 11./12. Mai statt. (Ba.-Wü.) und ich fühle mich absolut unfertig o.O
  4. D-Ani

    Website erstellen

    Guten Morgen, also ich finde Strato immer wieder Empfehlenswert. Du hast viele verschiedene php Versionen verfügbar und ansonsten eigentlich gute Möglichkeiten. Ich nutze bei diversen Seiten (Private oder Vereine) immer das Paket mit 4 Domains inkl. und kann sagen das Geld ist sehr gut angelegt. Wenn Du wirklich was lernen möchtest dann baust Du deine Seite selbst. Allerdings ist die Frage der Editierbarkeit nachher eher das Ausschlaggebende. Hat das Ding nur ein Frontend und braucht kein Extra Backend zur Content Pflege dann braucht man nicht zwingend ein CMS. Webseiten erstellen ist immer so eine Sache für sich mit seiner Browserkompatibilität etc., aber durch diesen kleine Hölle müssen wir Anfangs wohl alle Also Frage dich und in dem Fall den "Kunden" was sind die Anforderungen und was brauche ich dazu. Kontaktformulare sind schnell selbst gemacht wenn man mal in php etwas drin ist. Die Daten die man nachher eingibt zu Validieren ist dann wieder ein anderes Thema. Lernen wirst Du am meisten beim selbstgemachten. Braucht natürlich mehr Zeit. Wie viel Du davon hast? k.a. ^^
  5. Guten Morgen, im Zuge meiner Ausbildung mache ich derzeit ein Projekt bezgl. Parallax Scrolling. Ich habe eine Firmenseite (siehe hier...) erstellt und soweit so gut. Allerdings bekomme ich es nicht hin dass die Seite beim scrollen vom Horizontalen in das Vertikale übergeht. Als ehemalige Grundlage habe ich dies hier gewählt und entsprechend modifiziert. Die Frage ist nun wie kann ich diesen Scroll Converter (an dem es meiner Meingung nach liegt) ergänzen das Er bei entsprechenden Div Container vom Hori ins Verti geht und bei Content Ende quasi dann mit der Horizontalen weiter macht? Habt nachsicht wenn ich öfters mal fragen muss, aber bisweilen machte ich eher C# oder php. Das ist noch "Neu".
  6. Keiner Funktioniert... Ausser FF, Chrome, Opera und IE haben bei mir und im Geschäft alle ne Schraube locker :upps
  7. Nun das hier ist meine bereinigte Version. Stand aktuell ohne alles was es meines erachtens nicht mehr braucht. Was die Fehlermeldung allgemein betrifft da hast Du Recht das haben viele andere bereits gelöst, aber indem Sie einen Bogen drum herum gemacht haben. Mein Ansatz heute war eigentlich die Rechte zu erlangen auch dort kopieren zu können, so das ich ein wirklich komplettes BackUp erstellen kann! Nun mal sehen vielleicht bekomme ich noch irgendwie meine System Rechte rein using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Security.AccessControl; using System.Diagnostics; using System.Threading; namespace SaveMe { class Program { private static string[] values; static void Main(string[] args) { // Angabe Ziel und Quellverzeichnis & Error Log string source = @GetApplicationsPath() + "config.txt"; string eLogD = @GetApplicationsPath() + "ErrorLog.txt"; // Fehlerausgabe(n) und Erfolgsausgabe(n) string waitfile = ("Bitte warten... Die Sicherung der Verzeichnisse und Dateien von "); string waitfileb = (" nach "); string waitfilec = (" wird aktuell erstellt!"); string cd = (DateTime.Now + " Die Configdatei (" + source + ") existiert nicht!\n"); string dwng = (DateTime.Now + " Die Datei(en) oder das/die Verzeichnis(se) existiert nicht!\n"); // Abfrage ob Configdatei existiert... if (File.Exists(source)) { StreamReader sr = new StreamReader(source); string inputLine = (""); int i = 0; while ((inputLine = sr.ReadLine()) != null) { i++; values = inputLine.Split(new Char[] { ';' }); for (int j = 0; j < values.Length; j++) { string ez = values[j]; } string csvsource = values[0]; string csvtarget = values[1]; string dne = (DateTime.Now + " Das angegebene Verzeichnis (" + csvsource + ") existiert nicht!\n"); string zws = (DateTime.Now + " Es ist nicht genug Speicher vorhanden damit die Datei vollständig gelesen werden kann!\n"); string kzgb = (DateTime.Now + " Hinweis: Keine Zugriffsberechtigung! (" + csvsource + ") Entfernen Sie den Schreib- und/oder Leseschutz der zu überschreibenden Datei oder benennen Sie die Datei um!\n"); string sf = (DateTime.Now + " Ein nicht bedachter Fehler ist aufgetreten...!\n"); string up = (DateTime.Now + " Das Format des angegebenen Pfades ist Ungültig!\n"); string dpizl = (DateTime.Now + " Der eingetragene Pfad oder Dateiname ist zu lang.\nAuf Windows-Plattformen dürfen Pfade nicht länger als 247 Zeichen und Dateinamen nicht länger als 259 Zeichen sein.\n"); string au = (DateTime.Now + " Eines der Argumente ist ungültig!\n"); string ea = (DateTime.Now + " Ein E/A Fehler ist aufgetreten!\n"); string fidc = (DateTime.Now + " Die Configurationsdatei (" + source + ") darf keine leeren Zeilen enthalten! Initialisierung des BackUp's war daher leider nicht möglich oder nur teilweise erfolgreich\n"); if (File.Exists(csvsource) | Directory.Exists(csvsource)) { try { // Suchen, Kombinieren und Überschreiben der Dateien mit den Pfaden foreach (string f in Directory.EnumerateFiles(csvsource, "*", SearchOption.AllDirectories)) { string subPath = f.Substring(3); string newpath = Path.Combine(csvtarget, subPath); string test = Path.GetDirectoryName(newpath); if (!Directory.Exists(test)) { Directory.CreateDirectory(test); } File.Copy(f, newpath, true); File.SetAttributes(newpath, FileAttributes.Normal); // Bitte Warten Ausgabe Console.WriteLine(waitfile + f + waitfileb + newpath + waitfilec); } } catch (OutOfMemoryException oome) { File.AppendAllText(eLogD, zws + oome + "\n"); } catch (UnauthorizedAccessException uac) { File.AppendAllText(eLogD, kzgb + uac + "\n"); } catch (NotSupportedException nse) { File.AppendAllText(eLogD, up + nse + "\n"); } catch (PathTooLongException ptle) { File.AppendAllText(eLogD, dpizl + ptle + "\n"); } catch (DirectoryNotFoundException dnfe) { File.AppendAllText(eLogD, dne + dnfe + "\n"); } catch (ArgumentException ae) { File.AppendAllText(eLogD, au + ae + "\n"); } catch (IOException ioe) { File.AppendAllText(eLogD, ea + ioe + "\n"); } catch (IndexOutOfRangeException ioore) { File.AppendAllText(eLogD, fidc + ioore + "\n"); } catch (Exception e) { File.AppendAllText(eLogD, sf + e + "\n"); } } else { File.AppendAllText(eLogD, dwng + "\n"); Console.WriteLine(dwng); } } // Ende While - Orientierungspunkt } else { File.AppendAllText(eLogD, cd + "\n"); Console.WriteLine(cd); } } public static string GetApplicationsPath() { return Thread.GetDomain().BaseDirectory; } } }
  8. Unleserlich? Ich weiß in c# schreibt man das irgendwie in Klassen usw. auseinander scheinbar, aber wie Anfangs erwähnt komm ich eigentlich aus der php Ecke und die ist "lockerer" als c-sharp :floet: Ja die einfache Attribut Variante habe ich schon von oben nach unten, links bis rechts durchprobiert und stelle nur fest das ich bei der Suche im Prinzip vor der foreach Schleife nichts prüfen kann, weil noch nicht vorhanden und danach kann ich mir es ersparen weil der Ordner schon erfasst wurde und die Exception wirft. Ich komm mir gerade vor als müsste ich das Rätsel von Huhn und Ei lösen... :upps
  9. Ich habe mich schon gefragt was ich mit den Extensions soll Aber ich überlege gerade folgende Variante abzufragen bool isReadOnly = ((File.GetAttributes(csvsource oder f) & FileAttributes.ReadOnly) == FileAttributes.ReadOnly); bool isHidden = ((File.GetAttributes(csvsource oder f) & FileAttributes.Hidden) == FileAttributes.Hidden); bool isArchive = ((File.GetAttributes(csvsource oder f) & FileAttributes.Archive) == FileAttributes.Archive); bool isSystem = ((File.GetAttributes(csvsource oder f) & FileAttributes.System) == FileAttributes.System); Sollte mir theoretisch alles derartiges bei einer If Abfrage raus filtern... aber davor ist blöd und danach ist blöd... Wie Frage ich also etwas ab das noch nicht bekannt ist? Ich kenn nun nichts in c# das mir via boolschen Wert aufzeigt ob ich Zugriff habe oder nicht!? Wäre das davor/danach Problem nicht könnte... könnte man dies via einfache IF Abfrage lösen... Gibt es keine Möglichkeit das Tool als System laufen zu lassen? (Wie ich inzwischen erlaß kann man als Admin auf die SVI nicht zugreifen auch wenn lieb bettelst) Dann sollte ich ja automatisch keine Probleme mehr haben. Theopraktisch!?
  10. Ich kam gerade auf die gloreiche Idee mir mal den Fehler in der Konsole anzusehen und bin überrascht: System.Unauthorized... Der Zugriff auf den Pfad D:\System Volume Information wurde verweigert. bei System.IO.__Error.WinIOErorror(int32 errorCode, String maybeFullPath) bei System.IO.FileSystemEnumerableIterator'1.AddSearchableDirsToStack(SearchData localSearchData) bei System.IO.FileSystemEnumerableIterator'1.MoveNext() bei...[]...Zeile 78 (foreach (string d in Directory.EnumerateDirectories(csvsource, "*", SearchOption.AllDirectories)))
  11. War natürlich ein Scherz das es das war... :floet: Ich bin inzwischen soweit gediehen das ich bei einem Fehler wie z.b. UnauthorizedAccessExeption keinen komplett Abbruch habe. Das Programm springt dann zum nächsten Ordner weiter. Allerdings verstehe ich immer noch nicht warum ich da auf mir unbekanntes keinen Zugriff habe. using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.VisualBasic; using System.Diagnostics; using System.Threading; namespace SaveMe { class Program { private static string[] values; static void Main(string[] args) { // Angabe Ziel und Quellverzeichnis & Error Log string source = @GetApplicationsPath() + "config.txt"; string eLogD = @GetApplicationsPath() + "ErrorLog.txt"; // Zeitstempel DateTime today = DateTime.Now; // Angaben und Erfolgsausgabe(n) string waitfile = ("Bitte warten... Die Sicherung der Dateien von "); string waitfileb = (" nach "); string waitfilec = (" wird aktuell erstellt!"); string waitpath = ("Bitte warten... Die Sicherung der Verzeichnisse "); string waitpathb = (" nach "); string waitpathc = (" wird aktuell erstellt!"); string succ = ("Die Sicherung der Dateien war Erfolgreich.\n"); // Fehlerausgabe(n) string cd = (DateTime.Now + " Die Configdatei (" + source + ") existiert nicht!\n"); string dne2 = (DateTime.Now + " Die Datei oder das zu kopierende Verzeichnis existiert nicht!\n"); // Abfrage ob Configdatei existiert... if (File.Exists(source)) { StreamReader sr = new StreamReader(source); string inputLine = (""); int i = 0; while ((inputLine = sr.ReadLine()) != null) { i++; values = inputLine.Split(new Char[] { ';' }); for (int j = 0; j < values.Length; j++) { string ez = values[j]; } string csvsource = values[0]; string csvtarget = values[1]; string dne = (DateTime.Now + " Das angegebene Verzeichnis (" + csvsource + ") existiert nicht!\n"); string zws = (DateTime.Now + " Es ist nicht genug Speicher vorhanden damit die Datei vollständig gelesen werden kann!\n"); string dwng = (DateTime.Now + " Die Datei(en) wurde(n) nicht gefunden!\n"); string kzgb = (DateTime.Now + " Hinweis: Keine Zugriffsberechtigung! (" + csvsource + ") Entfernen Sie den Schreib- und/oder Leseschutz der zu überschreibenden Datei oder benennen Sie die Datei um!\n"); string sf = (DateTime.Now + " Ein nicht bedachter Fehler ist aufgetreten...!\n"); string up = (DateTime.Now + " Das Format des angegebenen Pfades ist Ungültig!\n"); string dpizl = (DateTime.Now + " Der eingetragene Pfad oder Dateiname ist zu lang.\nAuf Windows-Plattformen dürfen Pfade nicht länger als 247 Zeichen und Dateinamen nicht länger als 259 Zeichen sein.\n"); string au = (DateTime.Now + " Eines der Argumente ist ungültig!\n"); string ea = (DateTime.Now + " Ein E/A Fehler ist aufgetreten!\n"); string fidc = (DateTime.Now + " Die Configurationsdatei (" + source + ") darf keine leeren Zeilen enthalten! Initialisierung des BackUp's war daher leider nicht möglich oder nur teilweise erfolgreich\n"); if (File.Exists(csvsource) | Directory.Exists(csvsource)) { try { // Suchen, Kombinieren und Überschreiben der Pfade foreach (string d in Directory.EnumerateDirectories(csvsource, "*", SearchOption.AllDirectories)) { string subPath = d.Substring(3); string newpath = Path.Combine(csvtarget, subPath); Directory.CreateDirectory(newpath); //Bitte Warten Ausgabe Console.WriteLine(waitpath + d + waitpathb + newpath + waitpathc); } // Suchen, Kombinieren und Überschreiben der Dateien mit den Pfaden foreach (string f in Directory.EnumerateFiles(csvsource, "*", SearchOption.AllDirectories)) { string subPath = f.Substring(3); string newpath = Path.Combine(csvtarget, subPath); string test = Path.GetDirectoryName(newpath); //Console.WriteLine(test); if (!Directory.Exists(test)) { Directory.CreateDirectory(test); } File.Copy(f, newpath, true); File.SetAttributes(newpath, FileAttributes.Normal); // Bitte Warten Ausgabe Console.WriteLine(waitfile + f + waitfileb + newpath + waitfilec); } // Sicherung Erfolgreich Ausgabe Console.WriteLine(succ); } catch (OutOfMemoryException) { // Fehlerausgabe Zu wenig Speicher... File.AppendAllText(eLogD, zws); Console.WriteLine(zws); } catch (FileNotFoundException) { // Fehlerausgabe Datei existiert nicht... File.AppendAllText(eLogD, dwng); Console.WriteLine(dwng); } catch (UnauthorizedAccessException) { // Fehlerausgabe Zugriffsrechte auf das Zielverzeichnis unzureichend... File.AppendAllText(eLogD, kzgb); Console.WriteLine(kzgb); } catch (NotSupportedException) { // Fehlerausgabe Methode wird nicht unterstützt... File.AppendAllText(eLogD, up); Console.WriteLine(up); } catch (PathTooLongException) { // Fehlerausgabe angegebener Pfad ist zu lang... File.AppendAllText(eLogD, dpizl); Console.WriteLine(dpizl); } catch (DirectoryNotFoundException) { // Fehlerausgabe Quellverzeichnis existiert nicht... File.AppendAllText(eLogD, dne); Console.WriteLine(dne); } catch (ArgumentException) { // Fehlerausgabe eines falschen Arguments... File.AppendAllText(eLogD, au); Console.WriteLine(au); } catch (IOException) { // Fehlerausgabe E/A Fehler... File.AppendAllText(eLogD, ea); Console.WriteLine(ea); } catch (IndexOutOfRangeException) { // Fehlerausgabe Fehler in der Configdatei File.AppendAllText(eLogD, fidc); Console.WriteLine(fidc); } catch (Exception) { // Fehlerausgabe sonstige Fehler... File.AppendAllText(eLogD, sf); Console.WriteLine(sf); } } else { File.AppendAllText(eLogD, dne2); Console.WriteLine(dne2); } } // Ende While - Orientierungspunkt } else { // Fehlerausgabe Configdatei existiert nicht... File.AppendAllText(eLogD, cd); Console.WriteLine(cd); } } public static string GetApplicationsPath() { return Thread.GetDomain().BaseDirectory; } } } Die Frage ist nun WAS ist das und WIE kann ich das "überspringen" oder kopieren wie den Rest?!? :confused: Ich bin Admin - VS wird Admin ausgeführt und die .exe wird als Admin ausgeführt, aber immer den "batscher" auf die Finger
  12. Ich habe darüber Sinnfrei überlegt und das DirectoryInfo ParentDirectory = new DirectoryInfo(csvsource); heraus kommentiert... Nun funktioniert es scheinbar wie ich es wollte. Auf die Idee kam ich beim Studium der system.io.directory Seite. Scheinbar ist zuviel Info manchmal einfach hinderlich. Sollte jemand der NSA sagen
  13. Noch mehr Versteckt und Geschützt als Recycle.bin und Volume System Inf & Co auf einer nicht vom System verwendeten Platte? Ausser meinen zu Testzwecken verwendeten Dateien ist "Sichtbar" nichts darauf. Wenn ich an die anderen versteckten usw. ran komme sollte ich doch eigentlich an den Rest auch ran kommen!?
  14. Ne das sind Platten/Partitionen auf "Frida". C:\ und E:\ Partitionen und D:\ eine eigene Platte. Ich habe jetzt vorläufig eine Abfrage if File.Exists(csvsource) und Directory.Exists mit eingebaut was die Fehlerquote mit der Ändern von GetDirectorys & GetFiles sind nun statt Get ein Enumerate was mir möglich machte die z.b. volume Ordner auch kopiert und nicht daran stirbt. Aber irgendwas gibt es noch was mir eine System.UnauthorizedAccess wirft
  15. Aye dem stimme ich zu und ich denke diesbezüglich sollte ich als Admin der laut Anzeige "Vollzugriff" hat auf die Platten das Tool ohne Probleme ausführen. Funktioniert aber nicht. Auch nicht die Möglichkeit > Eigenschaften > Programm als Administrator ausführen. Auf diesem Rechner gibt es nur Vollzugriff, nichts abgespecktes. Das Problem tritt auch nur auf wenn ich z.b. E:\ D:\ als Quelle angebe...Mache ich ein E:\Verzeichnis D:\Quelle z.b. das nach C:\backup kopiert werden soll, habe ich keine Probleme. Das läuft einwandfrei durch.
  16. Mahlzeit, wie man im Thema > c# Console - Datensicherung mit .csv Input (Quelle/Ziel) < lesen kann schreibe ich derzeit ein Tool das mir alle Dateien kopieren soll. Theoretisch wäre ich fertig, aber ich habe Probleme damit z.b. E:\, D:\ oder C:\ als Source anzugeben und anschließend zu kopieren. Alles andere funktioniert soweit wenn es sich in einem Ordner befindet, aber was bringt ein Sicherungstool wenn es bei einer Platte versagt? Das ist die Fehlermeldung: Eine Ausnahme (erste Chance) des Typs "System.UnauthorizedAccessException" ist in mscorlib.dll aufgetreten. Ich habe schon ein paar Variante versucht, aber irgendwie übersehe ich was und hoffe Ihr könnt mir einen Tipp geben :-) VS selbst habe ich mit der Release Exe als Admin versucht, aber auch das führte bisweilen nicht zum gewünscht ergebnis :-( using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Diagnostics; using System.Threading; namespace SaveMe { class Program { private static string[] values; static void Main(string[] args) { // Angabe Ziel und Quellverzeichnis & Error Log string source = @GetApplicationsPath() + "config.txt"; string eLogD = @GetApplicationsPath() + "ErrorLog.txt"; // Zeitstempel DateTime today = DateTime.Now; // Angaben und Erfolgsausgabe(n) string waitfile = ("Bitte warten... Die Sicherung der Dateien von "); string waitfileb = (" nach "); string waitfilec = (" wird aktuell erstellt!"); string waitpath = ("Bitte warten... Die Sicherung der Verzeichnisse "); string waitpathb = (" nach "); string waitpathc = (" wird aktuell erstellt!"); string succ = ("Die Sicherung der Dateien war Erfolgreich.\n"); // Fehlerausgabe(n) string cd = (DateTime.Now + " Die Configdatei (" + source + ") existiert nicht!\n"); // Abfrage ob Configdatei existiert... if (File.Exists(source)) { StreamReader sr = new StreamReader(source); string inputLine = (""); int i = 0; while ((inputLine = sr.ReadLine()) != null) { i++; values = inputLine.Split(new Char[] { ';' }); for (int j = 0; j < values.Length; j++) { string ez = values[j]; } string csvsource = values[0]; string csvtarget = values[1]; DirectoryInfo ParentDirectory = new DirectoryInfo(csvsource); string dne = (DateTime.Now + " Das angegebene Verzeichnis (" + csvsource + ") existiert nicht!\n"); string zws = (DateTime.Now + " Es ist nicht genug Speicher vorhanden damit die Datei vollständig gelesen werden kann!\n"); string dwng = (DateTime.Now + " Die Datei(en) wurde(n) nicht gefunden!\n"); string kzgb = (DateTime.Now + " Keine Zugriffsberechtigung im Zielordner (" + csvtarget + ")! Entfernen Sie den Schreib- und/oder Leseschutz der zu überschreibenden Datei oder benennen Sie die Datei um!\n"); string sf = (DateTime.Now + " Ein nicht bedachter Fehler ist aufgetreten...!\n"); string up = (DateTime.Now + " Das Format des angegebenen Pfades ist Ungültig!\n"); string dpizl = (DateTime.Now + " Der eingetragene Pfad oder Dateiname ist zu lang.\nAuf Windows-Plattformen dürfen Pfade nicht länger als 247 Zeichen und Dateinamen nicht länger als 259 Zeichen sein.\n"); string au = (DateTime.Now + " Eines der Argumente ist ungültig!\n"); string ea = (DateTime.Now + " Ein E/A Fehler ist aufgetreten!\n"); try { // Wertausgabe // int pathLen = csvsource.Length +1; // Suchen, Kombinieren und Überschreiben der Pfade foreach (string d in Directory.GetDirectories(csvsource, "*", SearchOption.AllDirectories)) { string subPath = d.Substring(3); string newpath = Path.Combine(csvtarget, subPath); Directory.CreateDirectory(newpath); DirectoryInfo DI = new DirectoryInfo(newpath); DI.Attributes = FileAttributes.Normal; // Bitte Warten Ausgabe Console.WriteLine(waitpath + d + waitpathb + newpath + waitpathc); } // Suchen, Kombinieren und Überschreiben der Dateien mit den Pfaden foreach (string f in Directory.GetFiles(csvsource, "*", SearchOption.AllDirectories)) { string subPath = f.Substring(3); string newpath = Path.Combine(csvtarget, subPath); string test = Path.GetDirectoryName(newpath); //Console.WriteLine(test); if (!Directory.Exists(test)) { Directory.CreateDirectory(test); DirectoryInfo DI = new DirectoryInfo(test); DI.Attributes = FileAttributes.Normal; } File.Copy(f, newpath, true); File.SetAttributes(newpath, FileAttributes.Normal); // Bitte Warten Ausgabe Console.WriteLine(waitfile + f + waitfileb + newpath + waitfilec); } // Sicherung Erfolgreich Ausgabe Console.WriteLine(succ); } catch (OutOfMemoryException) { // Fehlerausgabe Zu wenig Speicher... File.AppendAllText(eLogD, zws); Console.WriteLine(zws); Console.ReadLine(); } catch (FileNotFoundException) { // Fehlerausgabe Datei existiert nicht... File.AppendAllText(eLogD, dwng); Console.WriteLine(dwng); Console.ReadLine(); } catch (UnauthorizedAccessException) { // Fehlerausgabe Zugriffsrechte auf das Zielverzeichnis unzureichend... File.AppendAllText(eLogD, kzgb); Console.WriteLine(kzgb); Console.ReadLine(); } catch (NotSupportedException) { // Fehlerausgabe Methode wird nicht unterstützt... File.AppendAllText(eLogD, up); Console.WriteLine(up); Console.ReadLine(); } catch (PathTooLongException) { // Fehlerausgabe angegebener Pfad ist zu lang... File.AppendAllText(eLogD, dpizl); Console.WriteLine(dpizl); Console.ReadLine(); } catch (DirectoryNotFoundException) { // Fehlerausgabe Quellverzeichnis existiert nicht... File.AppendAllText(eLogD, dne); Console.WriteLine(dne); Console.ReadLine(); } catch (ArgumentException) { // Fehlerausgabe eines falschen Arguments... File.AppendAllText(eLogD, au); Console.WriteLine(au); Console.ReadLine(); } catch (IOException) { // Fehlerausgabe E/A Fehler... File.AppendAllText(eLogD, ea); Console.WriteLine(ea); Console.ReadLine(); } catch (Exception) { // Fehlerausgabe sonstige Fehler... File.AppendAllText(eLogD, sf); Console.WriteLine(sf); Console.ReadLine(); } } } else { // Fehlerausgabe Configdatei existiert nicht... File.AppendAllText(eLogD, cd); Console.WriteLine(cd); } } public static string GetApplicationsPath() { return Thread.GetDomain().BaseDirectory; } } }
  17. Also ich habe es noch hin bekommen mit der Idee von Euch :-) Allerdings musste ich gehörig umbauen damit alles so Verfügbar bleibt wie gewünscht. Hier ein vorläufiger Code using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.VisualBasic; using System.Diagnostics; namespace ConsoleApplication3 { class Program { private static FileAttributes Normal; private static DateTime time; private static string[] values; static void Main(string[] args) { // Angabe Ziel und Quellverzeichnis (nachher Mehrere Quellen) string source = @"C:\config.txt"; string eLogD = @"C:\ErrorLog.txt"; // Zeitstempel DateTime today = DateTime.Now; // Angaben und Erfolgsausgabe(n) string waitfile = ("Bitte warten... Die Sicherung der Dateien von "); string waitfileb = (" nach "); string waitfilec = (" wird aktuell erstellt!"); string waitpath = ("Bitte warten... Die Sicherung der Verzeichnisse "); string waitpathb = (" nach "); string waitpathc = (" wird aktuell erstellt!"); string succ = ("Die Sicherung der Dateien war Erfolgreich.\n"); string taste = ("Weiter mit beliebiger Taste"); // Fehlerausgabe(n) string cd = (DateTime.Now + " Die Configdatei (" + source + ") existiert nicht!\n"); // Abfrage ob Configdatei existiert... if (File.Exists(source)) { StreamReader sr = new StreamReader(source); string inputLine = (""); int i = 0; while ((inputLine = sr.ReadLine()) != null) { i++; values = inputLine.Split(new Char[] { ';' }); for (int j = 0; j < values.Length; j++) { string ez = values[j]; } string csvsource = values[0]; string csvtarget = values[1]; DirectoryInfo ParentDirectory = new DirectoryInfo(csvsource); string dne = (DateTime.Now + " Das angegebene Verzeichnis (" + csvsource + ") existiert nicht!\n"); string zws = (DateTime.Now + " Es ist nicht genug Speicher vorhanden damit die Datei vollständig gelesen werden kann!\n"); string dwng = (DateTime.Now + " Die Datei(en) wurde(n) nicht gefunden!\n"); string kzgb = (DateTime.Now + " Keine Zugriffsberechtigung im Zielordner (" + csvtarget + ")! Entfernen Sie den Schreib- und/oder Leseschutz der zu überschreibenden Datei oder benennen Sie die Datei um!\n"); string sf = (DateTime.Now + " Ein nicht bedachter Fehler ist aufgetreten...!\n"); string up = (DateTime.Now + " Das Format des angegebenen Pfades ist Ungültig!\n"); string dpizl = (DateTime.Now + " Der eingetragene Pfad oder Dateiname ist zu lang.\nAuf Windows-Plattformen dürfen Pfade nicht länger als 247 Zeichen und Dateinamen nicht länger als 259 Zeichen sein.\n"); try { // Wertausgabe int pathLen = csvsource.Length + 1; // Suchen, Kombinieren und Überschreiben der Pfade foreach (string d in Directory.GetDirectories(csvsource, "*", SearchOption.AllDirectories)) { string subPath = d.Substring(pathLen); string newpath = Path.Combine(csvtarget, subPath); Directory.CreateDirectory(newpath); // Bitte Warten Ausgabe Console.WriteLine(waitpath + d + waitpathb + newpath + waitpathc); } // Suchen, Kombinieren und Überschreiben der Dateien mit den Pfaden foreach (string f in Directory.GetFiles(csvsource, "*", SearchOption.AllDirectories)) { string subPath = f.Substring(pathLen); string newpath = Path.Combine(csvtarget, subPath); File.Copy(f, newpath, false); File.SetAttributes(newpath, FileAttributes.Normal); // Bitte Warten Ausgabe Console.WriteLine(waitfile + f + waitfileb + newpath + waitfilec); } // Sicherung Erfolgreich Ausgabe Console.WriteLine(succ + taste); Console.ReadLine(); } catch (OutOfMemoryException) { // Fehlerausgabe Zu wenig Speicher... File.AppendAllText(eLogD, zws); Console.WriteLine(zws + taste); Console.ReadLine(); } catch (FileNotFoundException) { // Fehlerausgabe Datei existiert nicht... File.AppendAllText(eLogD, dwng); Console.WriteLine(dwng + taste); Console.ReadLine(); } catch (UnauthorizedAccessException) { // Fehlerausgabe Zugriffsrechte auf das Zielverzeichnis unzureichend... File.AppendAllText(eLogD, kzgb); Console.WriteLine(kzgb + taste); Console.ReadLine(); } catch (NotSupportedException) { // Fehlerausgabe Methode wird nicht unterstützt... File.AppendAllText(eLogD, up); Console.WriteLine(up + taste); Console.ReadLine(); } catch (PathTooLongException) { // Fehlerausgabe angegebener Pfad ist zu lang... File.AppendAllText(eLogD, dpizl); Console.WriteLine(dpizl + taste); Console.ReadLine(); } catch (DirectoryNotFoundException) { // Fehlerausgabe Quellverzeichnis existiert nicht... File.AppendAllText(eLogD, dne); Console.WriteLine(dne + taste); Console.ReadLine(); } catch (Exception) { // Fehlerausgabe sonstige Fehler... File.AppendAllText(eLogD, sf); Console.WriteLine(sf + taste); Console.ReadLine(); } } } else { // Fehlerausgabe Configdatei existiert nicht... File.AppendAllText(eLogD, cd); Console.WriteLine(cd + taste); Console.ReadLine(); } } } } Allerdings habe ich festgestellt das es mir keine Verzeichnisse nimmt die kein Unterverzeichnis haben :confused: Er bricht ab mit der Meldung DirectoryNotFoundException ... Die .txt sieht so aus c:\Adobe;e:\SaveMe c:\Microsoft;e:\SaveMe2 c:\Oracle;e:\SaveMe3 c:\SAP;e:\SaveMe4
  18. Im Endeffekt Einlesen einer Datei die Ursprung - Ziel beinhaltet Übergabe der Werte in die jeweilige Schleife (Pfad / Datei)
  19. Leider kann ich jetzt nicht mehr editieren, aber was mir einfällt. Selbst wenn ich zähle könnte ich ja für Source nur ungerade und für Ziele nur gerade Werte nehmen. Von Spalten habe ich gelesen ist mir aber unbekannt soweit. Wäre das eine Alternative? Scheint mit im Moment (was nicht viel heißen soll ) das Sinnvollere zu sein das Spaltenweise zu machen (wenn es weniger Code braucht wie ich denke) als ein großes Konstrukt aus 200tsd Schleifen für Schleifen zu bauen.
  20. Ja an die While/For Schleife dachte ich schon... hier eins meiner "Versuche" try { StreamReader sr = new StreamReader(source); string inputLine = (""); int i = 0; while ((inputLine = sr.ReadLine()) != null) { i++; values = inputLine.Split(new Char[] { ';' }); for (int j = 0; j < values.Length; j++) { string ez = values[j]; } DirectoryInfo ParentDirectory = new DirectoryInfo(source); // Suchen, Kombinieren und Überschreiben der Pfade foreach (string d in Directory.GetDirectories(source, "*", SearchOption.AllDirectories)) { string subPath = d.Substring(pathLen); string newpath = Path.Combine(target, subPath); Directory.CreateDirectory(newpath); // Bitte Warten Ausgabe Console.WriteLine(waitpath + d + waitpathb + newpath + waitpathc); } // Suchen, Kombinieren und Überschreiben der Dateien mit den Pfaden foreach (string f in Directory.GetFiles(source, "*", SearchOption.AllDirectories)) { string subPath = f.Substring(pathLen); string newpath = Path.Combine(target, subPath); File.Copy(f, newpath, true); File.SetAttributes(newpath, FileAttributes.Normal); // Bitte Warten Ausgabe Console.WriteLine(waitfile + f + waitfileb + newpath + waitfilec); } // Sicherung Erfolgreich Ausgabe Console.WriteLine(succ + taste); Console.ReadLine(); } } Ich hab ja 0 und 1 mit jeweils c und e, aber wie baue ich weiter auf. Ich mein da kommt eine weitere Schleife in die Schleife der schleifen... Schlussendlich weiß ich nicht was Du oder dein Nachbar im Endeffekt alles als Quelle und Ziele die man sichern soll eingeben. Oder lassen sich die Schleifen miteinander verschachteln das ich mir Code sparen kann...
  21. Ich hab das Problem mit c# kaum Erfahrung zu haben und das meiste aus php "übernommen" zu haben. Allerdings tue ich mich bei string[] z.b. schwer das als Quelle mag der restliche Code nicht. Dann sagt es mir bezgl. ungültiger Argumente. Das mit Streamreader und LINQ habe ich gelesen, aber wer nicht klug daraus. Eine einfache .txt Datei einlesen kann ich. Schlussendlich schreib ich ja mit der Anwendung ein Error Log in eine .txt. Mir erschließt sich nur nicht Gedanklich wie ich das ganze so einbauen kann das ich z.b. Datei: zeile1>source;target; zeile2>source;target; usw... jeweils habe für meine foreach Schleifen wo die Sicherungsarbeiten vorgenommen werden. Ich müsste ja die Werte oben und in die Schleife übergeben können. Da dort Zielpfad zusammengebaut wird. Vielleicht denk ich auch gerade zu Umständlich keine Ahnung, aber ich steh wie ein Elefant auf dem Schlauch EDIT: Bezgl. Visual Basic das ist ein Überrest einer verworfenen Idee am Anfang. Das ganze war mal doppelt so lang :floet:
  22. Mein Lehrer würde bei diesen Beiträgen viele Schlüsselbunde werfen müssen...Why? Nun hat jemand schon leuchtendes oder glühendes Obst gesehen? Ich persönlich nicht Leuchtmittel egal ob Glühlampen oder Energiesparlampen gehören eigentlich aus den Regalen der Leuchtmittel verbannt. Glühlampen sind bessere Heizkörper als die Zweckentfremdung die man dessen andachte... Energiesparlampen sind weiterhin zu Ineffizient, zu lange Schaltzeit und das wichtigste als Gefahr für Gesundheit und Umwelt nicht zu verachten. Theoretisch sind Leuchtmittel dazu da eine dunkle Umgebung aufzuhellen für die Tätigkeit die man tun möchte. Nicht dazu um schlafende Kinder die Sicherheiten zu geben die man als Eltern nicht geben will oder sonstige Lichtspielereien und Energieverschwendungen. (O)LED's sind ein weiterer Schritt in die Richtung beleuchtete Umgebung mit zur Hilfe nahme einer technischen Einrichtung. Zum Kochen usw. bedarf es doch keiner Lichtfarbe die dazu konzipiert ist etwas "gemütlich" zu machen. Ich will kochen und nicht beides :cool: Da tut es doch eine Lichtfarbe die einen Wach hält anstatt in Dämmerung zu wiegen. Die Diskussionen da drausen was alles Krebserregend ist sind Dinge die bei allem neuen angeführt wird. So gesehen ist Atmen heut zu tage Krebserregend. Giftig mitunter im falschen Parkhaus. Einzig Grower oder sonstige speziellen Anwendungen bedürfen diesem oder jenem "Arbeitsumfeld mit spezieller Ausleuchtung". Zur Not nehmt Rote oder Blaue LED's die halten länger als die weißen, solltet Ihr es speziell wollen. bezgl. der Preise... nun es rechnet sich eigentlich wenn man Qualität kauft. Qualität ist die Arbeit dahinter - nicht der Markenname
  23. Guten Morgen, ich habe bisweilen nur mit php gearbeitet und soll nun mit c# ein Tool erstellen das gefüttert wird mit einer .txt Datei in der pro Zeile Source/Target (Quelle/Ziel) der Datensicherung steht. Also wenn c:\test nach e:\saveme soll z.b. und natürlich muss das mit mehreren gehen (Seperator ist Semikolon). Ich habe schon an eine for Schleife gedacht zum Spalten/Listen weise abarbeiten, aber irgendwie hänge ich fest. Das Script funktioniert soweit einwandfrei wenn es nur ein Pfad und eine Quelle gibt. Und Fehler werden auch abgefangen. Jemand eine Idee? using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.VisualBasic; using System.Diagnostics; namespace ConsoleApplication3 { class Program { private static FileAttributes Normal; private static DateTime time; static void Main(string[] args) { // Angabe Ziel und Quellverzeichnis (nachher Mehrere Quellen) string source = @"C:\test"; string target = @"E:\SaveMe"; string eLogD = @"C:\ErrorLog.txt"; // Zeitstempel DateTime today = DateTime.Now; // Angaben und Erfolgsausgabe(n) string waitfile = ("Bitte warten... Die Sicherung der Dateien von "); string waitfileb = (" nach "); string waitfilec = (" wird aktuell erstellt!"); string waitpath = ("Bitte warten... Die Sicherung der Verzeichnisse "); string waitpathb = (" nach "); string waitpathc = (" wird aktuell erstellt!"); string succ = ("Die Sicherung der Dateien war Erfolgreich.\n"); string taste = ("Taste betätigen für Exit!"); // Fehlerausgabe(n) string dne = (DateTime.Now + " Das angegebene Verzeichnis (" + source + ") existiert nicht!\n"); string zws = (DateTime.Now + " Es ist nicht genug Speicher vorhanden damit die Datei vollständig gelesen werden kann!\n"); string dwng = (DateTime.Now + " Die Datei(en) wurde(n) nicht gefunden!\n"); string kzgb = (DateTime.Now + " Keine Zugriffsberechtigung im Zielordner (" + target + ")! Entfernen Sie den Schreib- und/oder Leseschutz der zu überschreibenden Datei oder benennen Sie die Datei um!\n"); string sf = (DateTime.Now + " Ein nicht bedachter Fehler ist aufgetreten...!\n"); string up = (DateTime.Now + " Das Format des angegebenen Pfades ist Ungültig!\n"); string dpizl = (DateTime.Now + " Der eingetragene Pfad oder Dateiname ist zu lang.\nAuf Windows-Plattformen dürfen Pfade nicht länger als 247 Zeichen und Dateinamen nicht länger als 259 Zeichen sein.\n"); // Wertausgabe int pathLen = source.Length + 1; // Abfrage ob (Quell)Verzeichnis existiert, dass gesichert werden soll... if (Directory.Exists(source)) { try { DirectoryInfo ParentDirectory = new DirectoryInfo(source); // Suchen, Kombinieren und Überschreiben der Pfade foreach (string d in Directory.GetDirectories(source, "*", SearchOption.AllDirectories)) { string subPath = d.Substring(pathLen); string newpath = Path.Combine(target, subPath); Directory.CreateDirectory(newpath); // Bitte Warten Ausgabe Console.WriteLine(waitpath + d + waitpathb + newpath + waitpathc); } // Suchen, Kombinieren und Überschreiben der Dateien mit den Pfaden foreach (string f in Directory.GetFiles(source, "*", SearchOption.AllDirectories)) { string subPath = f.Substring(pathLen); string newpath = Path.Combine(target, subPath); File.Copy(f, newpath, true); File.SetAttributes(newpath, FileAttributes.Normal); // Bitte Warten Ausgabe Console.WriteLine(waitfile + f + waitfileb + newpath + waitfilec); } // Sicherung Erfolgreich Ausgabe Console.WriteLine(succ + taste); Console.ReadLine(); } catch (OutOfMemoryException) { File.AppendAllText(eLogD, zws); Console.WriteLine(zws + taste); Console.ReadLine(); } catch (FileNotFoundException) { File.AppendAllText(eLogD, dwng); Console.WriteLine(dwng + taste); Console.ReadLine(); } catch (UnauthorizedAccessException) { File.AppendAllText(eLogD, kzgb); Console.WriteLine(kzgb + taste); Console.ReadLine(); } catch (NotSupportedException) { File.AppendAllText(eLogD, up); Console.WriteLine(up + taste); Console.ReadLine(); } catch (PathTooLongException) { File.AppendAllText(eLogD, dpizl); Console.WriteLine(dpizl + taste); Console.ReadLine(); } catch (Exception) { File.AppendAllText(eLogD, sf); Console.WriteLine(sf + taste); Console.ReadLine(); } } // Wenn Quellverzeichnis nicht existiert... else { // Fehlerausgabe Quellverzeichnis existiert nicht... File.AppendAllText(eLogD, dne); Console.WriteLine(dne + taste); Console.ReadLine(); } } } }

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...