Hallo ! Folgendes Problem: Im SytemOrdner 'C' gibt es den Order 'NeuerOrdner' In beiden Ordnern liegt die gleiche Textdatei 'Textdatei'.Die Pfade zu den Ordnern für die Textdateien ist also: string OrdnerPfad = @"C:\\"; bzw. string OrdnerPfad = @"C:\\NeuerOrdner\"; Die absoluten Pfade zu den Textdateien lauten also string dateiPfad = OrdnerPfad + "Textdatei.txt"; Schaue ich mir die Pfade auf der Konsole an also etwa : Console.WriteLine("Dateipfad: " + dateiPfad); ReadKey(); Dann ergibt sich in beiden Fällen richtigerweise: einmal C:\\Textdatei.txt bzw. C:\\NeuerOrdner\Textdatei.txt Wenn ich jetzt aber einen Streamreader initialisieren will mit StreamReader sr = new StreamReader(dateiPfad); ,dann kann ich im ersten Fall die Textdatei problemlos auslesen,während im zweiten Fall (Textdatei im Ordner 'NeuerOrdner' ) eine Exception geworfen wird mit dem Text: 'Ein Teil des Pfades "C:\NeuerOrdner\Textdatei.txt" konnte nicht gefunden werden.' Man achte auf den Single-Backslash nach 'C:' !! Ich benutze Visual Studio 2015 Als Anfänger bin ich immer dankbar für konstruktive Hilfe Gruss Manna
Ich kenne C# nicht, aber ich tippe darauf, dass der Space Kummer macht. Grüsse, René
Danke Rene für die promte Antwort. Als Anfänger verstehe nicht was du mit Space meinst Gruss Manna
Manna schrieb: > bzw. string OrdnerPfad = @"C:\\NeuerOrdner\"; Müsste das nicht
1 | string OrdnerPfad = @"C:\NeuerOrdner\"; |
sein? s. https://www.dotnetperls.com/path:
1 | C# program that uses verbatim string |
2 | |
3 | using System; |
4 | using System.IO; |
5 | |
6 | class Program |
7 | {
|
8 | static void Main() |
9 | {
|
10 | // ... Verbatim string syntax.
|
11 | string value = @"C:\directory\word.txt"; |
12 | Console.WriteLine(Path.GetFileName(value)); |
13 | }
|
14 | }
|
15 | |
16 | Output
|
17 | |
18 | word.txt |
mfg Olaf
Manna schrieb: > Als Anfänger verstehe nicht was du mit Space meinst Space == Blank == Leerzeichen == ' ' mfg Olaf
Hallo Olaf ! auch Dir Dank, aber eine Änderung des Code's in deinem Sinne hat am Ergebniss nichts geändert Gruss Manna
Manna schrieb: > Danke Rene für die promte Antwort. > Als Anfänger verstehe nicht was du mit Space meinst > Gruss Manna Ich meine das Leerzeichen in "Neuer Ordner". Grüsse, René
Hallo Olaf ! die landläufige Bedeutung des Begriffs Space ist mir durchaus bekannt.Mir ist nur nicht klar in welchem Zusammenhang diese Bedeutung des Begriffs mit meinem Problem stehen würde und so nahm ich an,in diesem Falle wäre 'Space' ein spezieller mir nicht geläufiger 'Terminus Technicus'.
Hallo Manna, ich komme gerade an keine Win-Kiste & VS ran. Workaround: in Verzeichnis mit auszulesender Datei wechseln & dann StreamReader mit Dateinamen initialisieren. mfg Olaf
Hallo Olaf ! Muss im Augenblick unser kleines 'Seminar' leider abbrechen(Pflichten!!) Werde mich wieder melden. nochmals vielen Dank für deine Bemühungen und natürlich guten Rutsch und ein frohes neues Jahr Gruss Manna
Manna schrieb: > die landläufige Bedeutung des Begriffs Space ist mir > durchaus bekannt. Hallo Manna, war nicht abschätzig gemeint. Ich kenne Deine Kenntnisse im Bereich Programmierung & speziell Dot.NET nicht. Dieses FX ist nicht ohne - Riesen-Krake ;-)) mfg Olaf
Manna schrieb: > string OrdnerPfad = @"C:\\NeuerOrdner\"; das ist definitiv falsch weil doppelt gemoppelt, wenn der @ vor dem String benutzt wird (verbatim string wie Olaf schon schrieb) dann werden zwei \ beibehalten und der Pfadname ist falsch. Also @ und einzelne \ oder kein @ und doppelte \ als Escape Zeichen. In dem Fall fehlte der zweite \ am Ende. VS hat doch einen wunderbaren Debugger, warum nicht einfach mit F10 durch das Programme steppen und sich die Stringinhalte ansehen?
1 | string OrdnerPfad2 = "C:\\NeuerOrdner\\"; |
2 | string OrdnerPfad3 = @"C:\NeuerOrdner\"; |
3 | string dateiPfad = OrdnerPfad2 + "Textdatei.txt"; |
4 | Console.WriteLine("Dateipfad: " + dateiPfad); |
5 | StreamReader sr = new StreamReader(dateiPfad);
|
6 | Console.WriteLine(sr.ReadLine());
|
beide Varianten OrdnerPfad2/3 funktionieren bei mir.
Johannes S. schrieb: > das ist definitiv falsch weil doppelt gemoppelt C:\Windows> cd ..\\\\windows\\\\\\system C:\Windows\system> Windows ist da extrem entspannt. Stefan
Stefan schrieb: > Windows ist da extrem entspannt. du hast Recht, string OrdnerPfad3 = @"C:\\NeuerOrdner\"; funktioniert auch. Der Fehler ist nur nachvollziehbar wenn z.B. entweder "Neuer Ordner" mit Leerzeichen geschrieben wurde oder der Ordnername wirklich ein Leerzeichen enthält.
Manna schrieb: > Hallo ! Folgendes Problem: > 'Ein Teil des Pfades "C:\NeuerOrdner\Textdatei.txt" konnte nicht > gefunden werden.' Das passiert normalerweise, wenn der Pfad nicht vorhanden ist (bei fehlender Datei gibt es eine andere Message). Bei mir funktionieren alle diese Varianten: @"D:\Bilder\" + "bird.png"; @"D:\\Bilder\" + "bird.png"; @"D:\Bilder\\" + "bird.png"; @"D:/Bilder//" + "bird.png"; @"D:/Bilder/" + "bird.png"; @"D://Bilder/" + "bird.png"; @"D:/\Bilder/\" + "bird.png"; @"D:\/Bilder\/" + "bird.png";
Frohes neues Jahr an alle,die versucht haben mir bei meinem Problem zu helfen Und im Nachhinein hat sich die simple Vermutunge von Rene als richtig herausgestellt,denn es war der 'Space' in 'Neuer Ordner',den ich einfach nicht gesehen hatte und der die Probleme verursachte! Als Anfänger habe ich aber auch durch die Auseinandersetzung mit den anderen Beitägen einiges gelernt und dafür nocheinmal vielen Dank und Gruss an alle Beteiligten Manna
Hi Manna, auch Dir ein frohes neues :). Manna schrieb: > Und im Nachhinein hat sich die simple Vermutunge von Rene als richtig Das freut mich zu hören. Manna schrieb: > nicht gesehen hatte und der die Probleme verursachte! > Als Anfänger habe ich aber auch durch die Auseinandersetzung mit den > anderen Beitägen einiges gelernt und dafür nocheinmal vielen Dank und > Gruss an alle > Beteiligten Es wird oft unterschätzt wieviel man lernt bei der Fehlersuche. Grüsse, René PS: leider geben die wenigsten Feedback was das Problem dann war, ich bedanke mich dafür. Es hilft denen die das Problem auch mal haben und hier suchen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.