\ in c#

TresPuntos

Cadet 4th Year
Registriert
Juni 2018
Beiträge
113
Hallo,

hab ein kleineres Problem:
Ich habe eine Textbox in der ein Pfad eingegeben werden kann (Bsp: C:\Users\Bsp\Pfad1)
Nun habe ich eine Methode erstellt die herausfinden soll, ob am Ende des Pfades ein \ steht oder nicht.
Für meinen weitere Code ist es enorm wichtig, dass der Pfad so aussehen soll C:\Users\tro\Documents\Pfad1\
Ich wollte eine If-Schleife bilden mit if(PfadName == "*\") {...}
Das Problem ist, das \ wird mir dann als falsch markiert.
 
  • Gefällt mir
Reaktionen: Drahminedum
Nvm, verlesen.
 
Dann poste mal den gesamten Code Ausschnitt und die exakte Fehlermeldung.
 
Die If-Abfrage(n)/Schleife kannst Du Dir sparen, es gibt eine Funktion "EndsWith":
Code:
if (PfadName.EndsWith("\\")) { ...
oder so:
Code:
if (PfadName.EndsWith(@"\")) { ...
Das @ bewirkt das der ganze String ohne Escape-Behandlung verwendet wird, macht vorallendingen dann sinn wenn viele Escape-Zeichen im String sind z.B:
C:\Users\tro\Documents\Pfad1\
Müsste man als
String PfadName = "C:\\Users\\tro\\Documents\\Pfad1\";
schreiben, oder eben einfach als:
String PfadName = @"C:\Users\tro\Documents\Pfad1\";
 
Zumindest der Compiler-Fehler sollte dann weg sein. Was aber auch falsch ist ist dein Vergleich. Stringvergleiche funktionieren in C# nicht wie in der CMD. Du willst nicht wissen ob dein String aus einem Stern und einem Backslash besteht (das ist das was du hingeschrieben hast) sondern ober er mit einem Backslash endet. Da wäre ein
Code:
if(Pfadname.EndsWith("\\"))


Wobei ich mich frage wieso das so wichtig ist... pfade bearbeitet man am besten mit der Pfad-Klasse, der ist es beim zusammensetzen der Bestandteile egal ob ein Pfad nun mit Backslash endet oder nicht (und vor allem ist ihr es auch egal ob man sich nicht gerade auf Linux befindet das keine Backslashes in Pfaden kennt ;-)
 
Ja habe es in der Zwischenzeit geschafft:)
Lösung war wie oben aufgeführt:
if(RichtigerPfad.EndsWith(@"\"))
{
return;
}
 
Vielleicht will er ja herrausfinden ob der User eine Datei oder einen Pfad angewählt hat ?
Er kann ja Path.DirectorySeparatorChar verwenden statt fixem \ :daumen:
 
lynxx schrieb:
Vielleicht will er ja herrausfinden ob der User eine Datei oder einen Pfad angewählt hat ?
Mit der Pfad-Klasse könnte man dabei gleich noch mit herausfinden ob das Ziel überhaupt existiert ;-)
 
Danke für die vielen Antworten.
Habe das jetzt so geregelt:
public String PfadRichtigAusgeben (String RichtigerPfad)
{
if(RichtigerPfad.EndsWith(@"\"))
{
return RichtigerPfad;
}
else
{
return RichtigerPfad = RichtigerPfad + @"\";
}
}
Das \ ist für meine weitere Programmierung sehr wichtig, deswegen ist die Klasse notwendig.
Aber der Tipp, ob der Pfad überhaupt existiert, habe ich auch gleich eingebunden:)
 
Meine Güte. Du postest hier so viel und schaffst es noch immer nicht Quelltext richtig zu "taggen". :freak:
 
TresPuntos schrieb:
return RichtigerPfad = RichtigerPfad + @"\";
Der Teil macht nicht das, von dem ich denke das du glaubst das er macht.
 
@Darlis, @heulendoch :
Mein Gedanke ist, dass man in einer Textbox den Pfad eingeben kann, woraus man alle Dokumente ausgegeben haben will. Ich will den Fehler vermeiden, falls jemand das \ am Ende nicht eingibt. Ist zwar beim Ausgeben nicht wichtig, hatte aber Probleme bei anderen Funktionen.
 
Zurück
Oben