C# Text aus Datei auslesen

Gast #4846258
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
(Firma: OBUP)
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
Gast
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'.
Gast
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
Gast
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.
Gast
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.
Gast
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";
Gast
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
Gast
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.