Autor Beitrag
Stephan.M
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 29.07.08 17:19 
Hallo,

ich sammle erste Erfahrungen
mit C# und komm bei der Streamprogrammierung insb. File.Exist nicht wirklich weiter.
Obwohl Pfadangabe und Dateiname stimmen wird nichts gefunden.
(bspw.):' C:\kunde.txt '

Für einen Tipp wäre ich dankbar!


ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
            System.Console.Write("Pfad und Dateiname: ");
            string file = System.Console.ReadLine();

            if (!File.Exists(file))
            {
                Console.WriteLine("Datei existiert nicht!", file);
                return;
            }


Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 29.07.08 20:16 
Hm. Da fällt mir relativ wenig zu ein :gruebel:

Außer, dass File.Exists auch dann false zurück liefert, wenn die Datei zwar vorhanden der ausführende Nutzer aber keine Leserechte hat. :nixweiss:

Funktioniert es, wenn Du den Pfad als String im Quelltext definierst anstatt ihn über die Konsole einzulesen?

P.S.: :welcome:
P.P.S.: Ich nehme an, die Leerzeichen vor und nach dem Dateinamen sind nur hier im Posting?

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Fabian E.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 554

Windows 7 Ultimate
Visual Studio 2008 Pro, Visual Studion 2010 Ultimate
BeitragVerfasst: Mi 30.07.08 09:21 
Wie verhält sich denn ein string in einer Variable in Bezug auf Escape-Sequenzen?
Werden diese trotzdem ausgewertet?
Vielleicht liegt es daran...
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: Mi 30.07.08 09:30 
also wenn du den Filename übergibst sollte da entweder
ausblenden C#-Quelltext
1:
string fileName = @"C:\blabla.bla"					

oder
ausblenden C#-Quelltext
1:
string fileName = "C:\\blabla.bla"					

stehn.

(@ escaped automatisch ansonsten halt per \ escapen)
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 30.07.08 11:39 
user profile iconFabian E. hat folgendes geschrieben:
Wie verhält sich denn ein string in einer Variable in Bezug auf Escape-Sequenzen?
Der Pfad steht doch überhaupt nicht im Quelltext :gruebel: ?
@Stephan: Wenn es immer noch nicht funktioniert: Mit File.OpenRead(file) solltest du eine aussagekräftigere Fehlermeldung bekommen.
Fabian E.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 554

Windows 7 Ultimate
Visual Studio 2008 Pro, Visual Studion 2010 Ultimate
BeitragVerfasst: Mi 30.07.08 12:24 
user profile iconKhabarakh hat folgendes geschrieben:
user profile iconFabian E. hat folgendes geschrieben:
Wie verhält sich denn ein string in einer Variable in Bezug auf Escape-Sequenzen?
Der Pfad steht doch überhaupt nicht im Quelltext :gruebel: ?


Nein, deswegen fragte ich nach Escape-Sequenzen in einer Variable :tongue:
Und da er etwas vorher C# mäßig den Pfad falsch hatte nahm ich an, dass dieser ohne doppelte Slashs eingeben wurde ;)
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 30.07.08 13:45 
user profile iconFabian E. hat folgendes geschrieben:
Nein, deswegen fragte ich nach Escape-Sequenzen in einer Variable :tongue:
Dann würde ich höchstpersönlich nach Redmond fliegen, Hörrn Hejlsberg auf den Hinterkopf schlagen und nur noch Lisp programmieren.
Sorry, aber schon allein der Gedanke, dass jemand so etwas verbrechen könnte ;) ...
Stephan.M Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 01.08.08 14:57 
vielen Dank Euch für die prompten Antworten;

ja - es liegt an der Escape-Sequenz;
mit: "C:\\kunde.txt" funktionierte es als einziges(!) von der Console aus
Ich habe der Variable den Wert explizit zugewiesen: string file = "C:\\kunde.txt" bzw.
@"C:\kunde.txt"
Seltsamerweise (und es ist absolut verwirrend) funktionierten per Console danach anschliessend "c:\kunde" nebst "C:\\kunde.txt" statt wie zuvor erwartet
Fehler? Phänomen? mit Visual C# 2005 Express auch noch auf zwei Computern..(?!)

Viele Grüße