Entwickler-Ecke
IO, XML und Registry - !File.Exists
Stephan.M - Di 29.07.08 17:19
Titel: !File.Exists
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!
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
Christian S.: C#-Tags hinzugefügt
Christian S. - 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?
Fabian E. - 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 - Mi 30.07.08 09:30
also wenn du den Filename übergibst sollte da entweder
C#-Quelltext
1:
| string fileName = @"C:\blabla.bla" |
oder
C#-Quelltext
1:
| string fileName = "C:\\blabla.bla" |
stehn.
(@ escaped automatisch ansonsten halt per \ escapen)
Kha - Mi 30.07.08 11:39
Fabian 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. - Mi 30.07.08 12:24
Khabarakh hat folgendes geschrieben: |
Fabian 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 - Mi 30.07.08 13:45
Fabian 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 - 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
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!