| 

.NET C# Java Javascript Exception

3
Ich habe zur Zeit folgendes Problem: Ich habe eine Funktion

public static string ReadFile(string file)
{
string content = "";

if (File.Exists(file))
{
var sr = new StreamReader(file, Encoding.Default);
content = sr.ReadToEnd();
sr.Close();
}

return content;
}


Jetzt rufe ich die Funktion in einer anderen Klasse auf. Am Aufruf an sich wird nicht gemeckert. Die Klasse soll eine Datei lesen, die im selben Ordner liegt wie die EXE. Die beiden Klassen gehören zu einem Projekt, das EXE-Projekt zu einem anderen Projekt, aber beide sind in derselben Solution und bei dem EXE-Projekt gibt es eine Referenz auf das Projekt mit den beiden Klassen und eben der obigen Funktion.

Der Aufruf folgt so:

var strTest = ReadFile("datei.txt");


Die Datei existiert im selben Ordner wie die EXE. Nur will mit meine Funktion jedesmal weiß machen, dass diese Datei nicht existiert.

Warum kann das so sein? Ich steh da grad echt auf dem Schlauch.
News:
12.03.2012
starki 603 1 8
LiRo 1,3k 1 9
Besteht das Problem nur im Debugger oder auch in der in der Release-Build-Version?
Floyd 12.03.2012
1
Hast Du schon mal versucht, den aktuellen Pfad voranzustellen? z.B. mit Application.StartupPath
Tosch 12.03.2012
3 Antworten
3
Hast Du möglicherweise die Dateiendungen ausgeblendet und die Datei heißt "datei.txt.txt"? Das ist zumindest mir schon passiert.
15.03.2012
TiMeBaNDiT76 294 2 7
Das war mein Problem. Habe später bemerkt, dass die Einstellung nicht eingestellt war, dass alle Endungen gezeigt werden sollten. Kleine Fehler, große Wirkung. Danke auf jeden Fall noch für den Gedanken :)
starki 26.03.2012
2
In meinem Versuch klappte das wunderbar. Meine Umgebung: VS 2010, Debug Modus, X86 Target.

Aber davon abgesehen: Warum liest du die Datei so umständlich?

File.ReadAllText("datei.txt", Encoding.Default)


tuts nämlich auch gut.
15.03.2012
nabuchodonossor 1,3k 5
Ah, die Funktion kannte ich noch gar nicht. Danke :)
starki 26.03.2012
1
Versuch mal den Pfad mit anzugeben.
Zum Beispiel so:

string dir = Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);
string fullpath = Path.Combine(dir, file);
12.03.2012
PinBack 687 1 8
PinBack 687 1 8

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH