C# Pfadübergabe scheitert bei zusammengesetzten Pfaden

  • Ersteller Ersteller KaffeeJunge
  • Erstellt am Erstellt am
K

KaffeeJunge

Gast
Hallihallo

ich habe eine funktion, welche im String einen Pfad erhält. Sobald dieser aber zusammengebaut ist, schmiert das Programm ab. Über eine MessageBox wollte ich mich überzeugen, dass der überlieferte Pfad korrekt ist.
Was mir angezeigt wird, ist auch richtig, dennoch komme ich nicht weiter.

Code:
private void funktion(string pfad)
{
//MessageBox.Show(pfad);
macher.url = pfad;
}

der Pfad wird übergeben:

Code:
private void irgendwas();
{
funktion(quelle[x]+quelle[y]+"\"")
}

Aussehen müsste der Pfad wie @"test\test.xxx"

Die Bausteine kommen aus Textdateien und lauten jeweils test\ und test

Das fehlende @" wird bei der Stringerstellung von quelle[x] eingefügt.

Aber wenn ich bei funktion(@"test\test.xxx") den Pfad direkt schicke, funktioniert es :/

Könnte mir jemand bitte sagen wo mein Denkfehler ist?
 
klingt nach Formatierungsfehler
 
Du brauchst kein @, wenn der Text aus ner Datei stammt. Das @ sagt C#, ob die Sonderzeichen im String beachtet
werden oder nicht. das gilt natürlich nur für Text, der im Sourcecode steht. Wenn du den text aus ner Datei lädst,
wird der so geladen, wie dieser in der Datei steht.
Schau dir auch mal die Funktion Path.Combine an, könnte dir Arbeit abnhemen.
 
Was heißt "das programm schmiert ab"? Mit welcher Fehlermeldung?
 
Mit diesen Angaben kann niemand was anfangen...nur raten.

Welcher Fehler (Exception) kommmt mit welcher Fehlermeldung? (Innere Exceptions beachten!!!)
Wie sieht der Code von "funktion" aus?

Dieser "Pseudocode" ist nicht nur nervig, sondern auch wenig hilfreich!

greetz
hroessler
 
Kann es sein, dass deine Funktion den String liest und den Backslash als escape character interpretiert?
Dann müsste dein String eher "test\\test.xxx" sein...
 
Bitte bitte bitte, bau keine Pfade selber zusammenbauen, das ist der häufigste Fehler den ich sehe in Verbindung mit Pfadhandling. Nimm System.IO.Path.Combine(), da kannst du auch beliebig viele Pfade mit kombinieren.

string myPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "Company", "Product");
// myPath = C:\ProgramData\Company\Product
 
Zurück
Oben