c# - Come posso scrivere una barra rovesciata (\) in una stringa?

Translate

Voglio scrivere qualcosa del genereC:\Users\UserName\Documents\Tasksin untextbox:

txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\Tasks";

Ottengo l'errore:

Sequenza di escape non riconosciuta.

Come si scrive una barra rovesciata in una stringa?

This question and all comments follow the "Attribution Required."

Tutte le risposte

Translate

Il backslash ("\") è un carattere di escape speciale utilizzato per indicare altri caratteri speciali come le nuove righe (\n), schede (\t) o virgolette (\").

Se vuoi includere un carattere backslash stesso, hai bisogno di due backslash o usa il@stringa letterale:

var s = "\\Tasks";
// or 
var s = @"\Tasks";

Leggi ilDocumentazione MSDN / specifica C #che discute i caratteri di cui è stato eseguito l'escape utilizzando il carattere barra rovesciata e l'uso della stringa letterale verbatim.

In genereparlando, la maggior parte degli sviluppatori C # .NET tende a preferire l'utilizzo di@stringhe verbatim quando si creano percorsi di file / cartelle poiché li evita di dover scrivere sempre doppie barre rovesciate e possono copiare / incollare direttamente il percorso, quindi ti suggerirei di prendere l'abitudine di fare lo stesso.


Detto questo, in questo caso, ti consiglierei effettivamente di utilizzare l'estensionePath.Combinemetodo di utilità come inRisposta di @ lordkaincome allora non devi preoccuparti se le barre rovesciate sono già incluse nei percorsi e accidentalmente raddoppiano le barre o se le omettono del tutto quando si combinano parti di percorsi.

fonte
Translate

Per sfuggire al backslash, usane semplicemente 2, in questo modo:\\

Se hai bisogno di sfuggire ad altre cose, questo può essere utile..

fonte
Translate

C'è una funzione speciale fatta per questoPath.Combine ()

var folder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
var fullpath = path.Combine(folder,"Tasks");
fonte
Translate

La risposta precedente è corretta ma in questo caso specifico consiglierei di utilizzare l'estensioneSystem.IO.Path.Combinemetodo.

Puoi trovare maggiori dettagli qui:http://msdn.microsoft.com/en-us/library/fyy7a5kt.aspx

fonte
Nil
Translate
txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\\\Tasks";

Metti una doppia barra rovesciata invece di una singola barra rovesciata ...

fonte
Translate

Basta sfuggire al"\"utilizzando +"\\Tasks"o usa una stringa letterale come@"\Tasks"

fonte
Translate

anche se questo post è piuttosto vecchio, ho provato qualcosa che ha funzionato per il mio caso.

Volevo creare una variabile stringa con il valore seguente:

21541_12_1_13\":null

quindi il mio approccio era così:

  • costruire la stringa usando verbatim

    stringa sottostringa = @ "21541_12_1_13 \" ": null";

  • e quindi rimuovere le barre rovesciate indesiderate utilizzando la funzione Rimuovi

    string newsubstring = substring.Remove (13, 1);

Spero possa aiutare. Saluti

fonte
Leave a Reply
You must be logged in to post a answer.
Circa l'autore