示例#1
0
        /// <summary>
        /// Normaliza el nombre de la carpeta para quitar posibles caracteres invalidos en el camino del path.
        /// </summary>
        /// <param name="nombreCarpeta"></param>
        /// <returns></returns>
        public static String NormalizarNombreCarpeta(String nombreCarpeta)
        {
            //Obtengo la lista, sacando posibles caracteres barra repetidos.
            var lista = Cadenas.Parsear(nombreCarpeta, "\\").Where(w => !String.IsNullOrEmpty(w)).ToList();

            //Si la ultima de las partes contiene un punto, se lo considera un archivo.
            if (lista.Last().Contains("."))
            {
                //Lo que vino esta ok.
                return(Cadenas.UnirLista(lista, "\\"));
            }
            else
            {
                //Siempre finaliza con una barra.
                return(Cadenas.UnirLista(lista, "\\") + "\\");
            }
        }
示例#2
0
        /// <summary>
        /// Devuelve el nombre de la carpeta de la ruta completa.
        /// Si la direccion tiene un nombre de archivo, omite dicho nombre de archivo.
        /// </summary>
        /// <param name="rutaCompleta"></param>
        /// <returns></returns>
        public static String ObtenerNombreCarpetaDeRutaCompleta(String rutaCompleta)
        {
            //Normalizo la carpeta como primer medida, para saber que no esta mal formateada.
            var carpetaNormalizada = NormalizarNombreCarpeta(rutaCompleta);

            //Separo las secciones.
            var listaSecciones = Cadenas.Parsear(carpetaNormalizada, "\\");

            //Si el ultimo tiene forma de nombre de archivo, entonces se remueve.
            if (listaSecciones.Last().Contains("."))
            {
                listaSecciones.RemoveAt(listaSecciones.Count - 1);
            }

            //Solo devuelvo la ultima.
            return(listaSecciones.Last());
        }
示例#3
0
        /// <summary>
        /// Devuelve el nombre del archivo en un path completo.
        /// </summary>
        /// <param name="direccion"></param>
        /// <returns></returns>
        public static String ObtenerNombreArchivo(String direccion)
        {
            //Normalizo la carpeta como primer medida, para saber que no esta mal formateada.
            var carpetaNormalizada = Carpetas.NormalizarNombreCarpeta(direccion);

            //Separo las secciones.
            var listaSecciones = Cadenas.Parsear(carpetaNormalizada, "\\");

            //Si el ultimo tiene forma de nombre de archivo, entonces se remueve.
            if (!listaSecciones.Last().Contains("."))
            {
                throw new DevCityFrameworkException("No se puede obtener el nombre del archivo porque el resultado de la busqueda indica que no hay un nombre de archivo valido y con extension.");
            }

            //Retorno el ultimo que es la lista.
            return(listaSecciones.Last());
        }
示例#4
0
        /// <summary>
        /// Ingresas una ruta de carpeta y las posiciones por retroceder.
        /// Devuelve la ubicacion actual luego de retroceder.
        /// </summary>
        /// <param name="direccionCarpeta"></param>
        /// <param name="posicionesRetroceder"></param>
        /// <returns></returns>
        public static String NavegarCarpeta(String direccionCarpeta, Int32 posicionesRetroceder)
        {
            //Normalizo la carpeta como primer medida, para saber que no esta mal formateada.
            var carpetaNormalizada = NormalizarNombreCarpeta(direccionCarpeta);

            //Separo las secciones.
            var listaSecciones = Cadenas.Parsear(carpetaNormalizada, "\\");

            //Compruebo que se puede realizar la operacion
            if (posicionesRetroceder >= listaSecciones.Count)
            {
                throw new DevCityFrameworkException(Cadenas.Formatear("La cantidad de posiciones por retroceder es igual o excede la cantidad de posiciones disponibles por navegar. Existen {0} posicion(es) y se intento retroceder {1} posicion(es).", listaSecciones.Count, posicionesRetroceder));
            }

            //Obtengo solo las partes requeridas
            var resultado = listaSecciones.Take(listaSecciones.Count - posicionesRetroceder).ToList();

            //Y vuelvo a unir.
            return(NormalizarNombreCarpeta(Cadenas.UnirLista(resultado, "\\")));
        }