c# - reemplazar - ¿Cómo escribo una barra diagonal inversa(/) en una cadena?
diagonal invertida teclado (7)
El carácter de barra invertida ( "/"
) es un carácter de escape especial que se utiliza para indicar otros caracteres especiales, como nuevas líneas ( /n
), pestañas ( /t
) o comillas ( /"
). Si desea incluir un carácter de barra diagonal inversa en sí, necesita dos barras diagonales inversas o usa la cadena @
verbatim: "//Tasks"
o @"/Tasks"
.
Lea la documentación de MSDN / Especificación de C # que trata sobre los caracteres que se han escapado usando el carácter de barra diagonal inversa y el uso del literal literal literal.
En términos generales, la mayoría de los desarrolladores de C # .NET tienden a favorecer el uso de las cadenas @
verbatim cuando crean rutas de archivos / carpetas, ya que les ahorra tener que escribir barras invertidas dobles todo el tiempo y pueden copiar / pegar directamente la ruta, por lo que sugeriría tienes el hábito de hacer lo mismo.
Dicho todo esto, en este caso, en realidad recomendaría usar el método de utilidad Path.Combine
como en la respuesta de @ lordkain, ya que entonces no tiene que preocuparse de si las barras diagonales inversas ya están incluidas en las rutas y doblar accidentalmente las barras oblicuas u omitiéndolos por completo al combinar partes de caminos.
Quiero escribir algo así C:/Users/UserName/Documents/Tasks
en un textbox
:
txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"/Tasks";
Me sale el error:
Secuencia de escape no reconocida.
¿Cómo escribo una barra invertida en una cadena?
Hay una función especial para este Path.Combine()
var folder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
var fullpath = path.Combine(folder,"Tasks");
La respuesta anterior es correcta, pero en este caso específico recomendaría usar el método System.IO.Path.Combine .
Puede encontrar más detalles aquí: http://msdn.microsoft.com/en-us/library/fyy7a5kt.aspx
Para escapar de la barra invertida, simplemente use 2 de ellos, como este: //
Solo escape la "/"
usando + "//Tasks"
o use una cadena de caracteres litera como @"/Tasks"
aunque esta publicación es bastante antigua, probé algo que funcionó para mi caso.
Quería crear una variable de cadena con el siguiente valor:
21541_12_1_13/":null
entonces mi enfoque fue así:
construir la cadena usando textualmente
string substring = @ "21541_12_1_13 /" ": null";
y luego eliminar las barras invertidas no deseadas con la función Eliminar
string newsubstring = substring.Remove (13, 1);
Espero que ayude. Aclamaciones
txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"///Tasks";
Ponga una doble barra invertida en lugar de una barra invertida simple ...