remedios rapido quitar puntos productos pasta para negro nariz mascarilla los espinillas dental dela con como caseros cara barros .net path

rapido - .Net-Eliminar puntos de la ruta



quitar puntos nariz rapido (8)

Creo que lo que estás buscando es Syetem.IO.Path ya que proporciona métodos para tratar varios problemas relacionados con las rutas genéricas, incluso las rutas de Internet.

¿Cómo puedo convertir "c: / foo / .. / bar" en "c: / bar"?


Has probado

string path = Path.GetFullPath(@"C:/foo/../bar");

en C # usando la clase System.IO.Path?


No es una respuesta directa, pero de la pregunta sospecho que está tratando de reinventar el método System.IO.Path.Combine () . Eso debería eliminar la necesidad de crear rutas como la que está preguntando en general.


Pruebe System.IO.Path.GetFullPath (@ "c: / foo .. / bar")



string path = Path.GetFullPath("C://foo//..//bar"); // path = "C://bar"

Más información


En caso de que quiera hacer esto usted mismo, puede usar este código:

var normalizePathRegex = new Regex(@"/[^/]+/.."); var path = @"C:/lorem/../ipsum" var result = normalizePathRegex.Replace(unnormalizedPath, x => string.Empty);

URLs y rutas estilo UNIX:

var normalizePathRegex = new Regex(@"/[^/]+/.."); var path = @"/lorem/../ipsum" var result = normalizePathRegex.Replace(unnormalizedPath, x => string.Empty);

Nota: recuerde usar RegexOptions.Compiled cuando utilice este código en una aplicación en el mundo real


Quería preservar las rutas relativas sin convertirlas en una ruta absoluta, también quería admitir tanto las fuentes de línea de Windows como las de estilo de Linux (/ o /), así que se me ocurrió la siguiente fórmula y aplicación de prueba:

using System; using System.Diagnostics; using System.Text.RegularExpressions; class Script { /// <summary> /// Simplifies path, by removed upper folder references "folder/.." will be converted /// </summary> /// <param name="path">Path to simplify</param> /// <returns>Related path</returns> static String PathSimplify(String path) { while (true) { String newPath = new Regex(@"[^///]+(?<!/./.)[///]/./.[///]").Replace(path, "" ); if (newPath == path) break; path = newPath; } return path; } [STAThread] static public void Main(string[] args) { Debug.Assert(PathSimplify("x/x/../../xx/bbb") == "xx/bbb"); // Not a valid path reference, don''t do anything. Debug.Assert(PathSimplify(@"C:/X//../y") == @"C:/X//../y"); Debug.Assert(PathSimplify(@"C:/X/../yy") == @"C:/yy"); Debug.Assert(PathSimplify(@"C:/X/../y") == @"C:/y"); Debug.Assert(PathSimplify(@"c:/somefolder/") == @"c:/somefolder/"); Debug.Assert(PathSimplify(@"c:/somefolder/../otherfolder") == @"c:/otherfolder"); Debug.Assert(PathSimplify("aaa/bbb") == "aaa/bbb"); } }

Elimina las referencias adicionales de la carpeta superior si las hay