C# Text aus Datei auslesen

Gast #4846258
Lesenswert?

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) #4846275
Lesenswert?

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 #4846296
Lesenswert?

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 #4846302
Lesenswert?

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 #4846340
Lesenswert?

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 #4846370
Lesenswert?

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 #4846412
Lesenswert?

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 #4847199
Lesenswert?

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 #4847205
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren