Autor Beitrag
Rookie861
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 08.01.08 00:42 
Ich habe gerade erst mit C# angefangen und stehe jetzt wohl vor einem grundlegenden Problem:

Ich kann mit dem StreamReader einfach keine Datei öffnen, ich bekomme immer eine Filenotfound-Exception an den Kopf geschmissen.

Schon das einfachste Beispiel funktioniert nicht:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
static void Main(string[] args)
{
System.IO.StreamReader sr = new System.IO.StreamReader(@"d:\test.tmp");
sr.Close();
}


Beim Konstruktor-Parameter habe ich schon alles versucht, von "d:\\test.tmp" bis "d:\test.tmp", mit @ und ohne @. Ich bin echt am verzweifeln, mit dem Writer scheint alles zu funktionieren, mit dem Reader funktioniert einfach nichts. :?

PS: Die Datei d:\test.tmp existiert natürlich.

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt
Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Di 08.01.2008 um 09:49
golgol
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 58

Win XP Prof. / Linux
C# (VS 2005)
BeitragVerfasst: Di 08.01.08 09:25 
Hi, und willkommen im Forum.

Zunächst ein kleiner Tip: Da eine Exception geschmissen werden kann (bzw. in diesem Fall sogar mehrere erschiedene) würde ich das ganze immer in einen Try-Catch-Block packen - ist einfach sauberer und reißt nicht zwangsläufig die Software mit. Ganz allgemein kannst du das entweder mit @"d:\temp.txt" oder "d:\\temp.txt" machen, sollte beides funktionieren. Schau dir mal folgendes Beispiel aus der SDK-Dokumentation an und probier das damit mal aus. Wenn das auch nicht klappt musst du irgendein lokales Problem haben (wobei ich mir nicht vorstellen kann, dass es nicht klappen sollte, wenn das mit dem Writer klappt):

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
using System;
using System.IO;

class Test 
{
    public static void Main() 
    {
        try 
        {
            // Create an instance of StreamReader to read from a file.
            // The using statement also closes the StreamReader.
            using (StreamReader sr = new StreamReader("TestFile.txt")) 
            {
                String line;
                // Read and display lines from the file until the end of 
                // the file is reached.
                while ((line = sr.ReadLine()) != null
                {
                    Console.WriteLine(line);
                }
            }
        }
        catch (Exception e) 
        {
            // Let the user know what went wrong.
            Console.WriteLine("The file could not be read:");
            Console.WriteLine(e.Message);
        }
    }
}
Rookie861 Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 08.01.08 13:35 
Ich habe das Projekt einmal 1 zu 1 übernommen, trotzdem funktioniert es nicht.

"Die Datei D:\Visual Studio 2005\Projects\HelloWorld\bin\Debug\TestFile.txt konnte nicht gefunden werden."

Es ist wirklich zum verzweifeln, wieso findet er diese Datei nicht obwohl sie ja existiert?
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Di 08.01.08 13:39 
Auf Anhieb fällt mir keine Garantierte lösung ein.
am wahrscheinlichsten ist immernoch das die Dateien nicht existieren (vielleicht verwechselst du den laufwerksbuchstaben?).
ne andere Variante wären das du als Benutzer nicht genug Rechte hast um an die Dateien ranzukommen aber kann ich mir ehrlichgesagt nicht vorstellen das du ans vs2005 nit rankommen sollst wenn du doch grade damit programmierst