elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Separar la ruta de un archivo de este.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Separar la ruta de un archivo de este.  (Leído 10,271 veces)
SeniorX


Desconectado Desconectado

Mensajes: 1.347


Programador Novato


Ver Perfil WWW
Separar la ruta de un archivo de este.
« en: 3 Julio 2006, 01:05 am »

Eso :P... tengo un problema muy tonto, lo que pasa es que obtengo la ruta de un archivo mediante un openfiledialog, y el filename me da su ruta completa lo que yo quiero hacer es separar el archivo para que en una cadena me quede nombreArchivo y en el otro RutaDelArchivo. Se me ocurre hacer algo con un split, separando todos los \, pero no me gusta porque seguramente hay algo mas practico y porque en unix las rutas son con / :P.... Seguro que hay alguna propiedad, yo por mientras sigo mirando, ojalá alguien sepa.


En línea

Código:
try {
     live();
}
catch (ShitHappensException ex) {
MessageBox.Show(ex.Solution)
}
Precaución: La programacion puede producir adiccion
Robokop


Desconectado Desconectado

Mensajes: 1.660



Ver Perfil
Re: Separar la ruta de un archivo de este.
« Respuesta #1 en: 3 Julio 2006, 01:19 am »

porque no intentas con instr para que te devuelva el numero de caracteres que hay antes de 7 y luego con mid la acortas
Código:
Module Module1

    Sub Main()
        Dim lugar As String = "Windows\system\nombre"
        Dim acortar As Integer

        acortar = (InStr(lugar, "\"))
        Console.WriteLine(acortar)
        Console.WriteLine(Mid(lugar, acortar))

        Console.ReadLine()


    End Sub

End Module

Explicacion : instr sirve para comparar una cadena con un caracter o con un conjuto de caracteres es decir palabras xDD  y este nos devuelve un numero que es la posicion donde empieza desde izquierda a derecha.
Mid sirve para cortar ,divir,mochar,separar etc.. lo que haces es separar la cadena en este caso el directorio por el valor retornado de instr.


« Última modificación: 3 Julio 2006, 01:22 am por Robokop » En línea

SeniorX


Desconectado Desconectado

Mensajes: 1.347


Programador Novato


Ver Perfil WWW
Re: Separar la ruta de un archivo de este.
« Respuesta #2 en: 3 Julio 2006, 01:43 am »

Disculpa es en c# XD. Se me habia olvidado especificar, pero entendi la teoria, pero me gustaria saber si hay alguna manera mas practica.
Y otra pregunta: Como puedo obtener la ruta donde está el ejecutable de mi programa?
En línea

Código:
try {
     live();
}
catch (ShitHappensException ex) {
MessageBox.Show(ex.Solution)
}
Precaución: La programacion puede producir adiccion
MaLkAvIaN_NeT

Desconectado Desconectado

Mensajes: 213


MaLkAvIaN_NeT


Ver Perfil WWW
Re: Separar la ruta de un archivo de este.
« Respuesta #3 en: 3 Julio 2006, 03:49 am »

Para ver la ruta donde corre tu programa en un textbox;

Código:
 this.textBox1.Text=Application.StartupPath;

...con lo anterior yo pasé por el problema, y como dices tu la clase Split es tediosa supongamos que tengo la ruta:

Código:
this.openFileDialog1.ShowDialog();
         string Ruta=this.openFileDialog1.FileName;

.. bueno lo que hice yo para hacer una separación fue meter la cadena en un bucle de izquierda a derecha, y en el primer "\" que encontraba terminaba el bucle y obtenias lo restante que sería la ruta y lo que estuvo despues el nombre del archivo.

bueno esto si lo hize en vb.net puedes pasarlo a C#,, lo tengo por aqui:

Código:
For i As Integer = cadena.Length - 1 To 0 Step -1
                        If cadena.Substring(i, 1).ToLower = "\" Then
                            cadena = cadena.Substring(i + 1)
                        End If
           Next
En línea

a por las buenas ideas
SeniorX


Desconectado Desconectado

Mensajes: 1.347


Programador Novato


Ver Perfil WWW
Re: Separar la ruta de un archivo de este.
« Respuesta #4 en: 3 Julio 2006, 04:10 am »

Muchas gracias por la info :).

Con respecto a tu algoritmo, por lo que veo, si la ruta tiene muchos "\" habria problemas:
Ruta: c:\hola\este\es\mi\archivo.exe
por lo que entendi tu algoritmo pararia en c:\ y el nombre del archivo seria \hola\este\es\mi\archivo.exe.

A ver si se aparece alguien en c# que haya tenido el mismo problema, pero de todas maneras me ayuda ver las soluciones de los demás, aunque esten en otros lenguajes.
En línea

Código:
try {
     live();
}
catch (ShitHappensException ex) {
MessageBox.Show(ex.Solution)
}
Precaución: La programacion puede producir adiccion
MaLkAvIaN_NeT

Desconectado Desconectado

Mensajes: 213


MaLkAvIaN_NeT


Ver Perfil WWW
Re: Separar la ruta de un archivo de este.
« Respuesta #5 en: 3 Julio 2006, 04:15 am »

Código:
acortar = (InStr(lugar, "\"))
Console.WriteLine(acortar)
Console.WriteLine(Mid(lugar, acortar))

El code que pone nuestro amigo Robokop funciona a la perfeción,,, pero si se hablara de un code netamente orientado a la filosofía del .NET no se tendría que usar funciones como Mid y otras; porque estarían al marjen de la potencia que nos ofrece el Net Framework.( esto si usaramos nuestras aplicaciones en interoperabilidad con otros lenguajes soportados).
Para los artilugios de cadena existen los métodos de la clase String como; Substring, Remove, padLEft, PadRight, entre otros.
Bueno pero si no se piensa en esos detalles que aveces son importantes se puede programar con programación estructurada porque vb.net es un lenguaje mixto

Salu2
 
En línea

a por las buenas ideas
MaLkAvIaN_NeT

Desconectado Desconectado

Mensajes: 213


MaLkAvIaN_NeT


Ver Perfil WWW
Re: Separar la ruta de un archivo de este.
« Respuesta #6 en: 3 Julio 2006, 04:17 am »

Citar
Con respecto a tu algoritmo, por lo que veo, si la ruta tiene muchos "\" habria problemas:
Ruta: c:\hola\este\es\mi\archivo.exe
por lo que entendi tu algoritmo pararia en c:\ y el nombre del archivo seria \hola\este\es\mi\archivo.exe.

por eso en el algoritmo que puse el for tiene step -1
osea no empieza a recorrer la cadena desde la izquierda, si no desde la derecha.
En línea

a por las buenas ideas
MaLkAvIaN_NeT

Desconectado Desconectado

Mensajes: 213


MaLkAvIaN_NeT


Ver Perfil WWW
Re: Separar la ruta de un archivo de este.
« Respuesta #7 en: 3 Julio 2006, 04:27 am »

Bueno no sería tan diferente hacerlo en C#

Código:
for(int i = Ruta.Length ; i<=0; i--)

         
En línea

a por las buenas ideas
SeniorX


Desconectado Desconectado

Mensajes: 1.347


Programador Novato


Ver Perfil WWW
Re: Separar la ruta de un archivo de este.
« Respuesta #8 en: 3 Julio 2006, 23:45 pm »

Código:
 for (int i = ruta.Length; i <= 0; i--)
            {
                if (ruta.Substring(i, 1).ToLower = " \ ";
                ruta = ruta.Substring(i + 1);
            }
Tengo otro problema algo noob, que puedo hacer para que no me joda en "\", dice que es una secuencia de escape invalida :S
En línea

Código:
try {
     live();
}
catch (ShitHappensException ex) {
MessageBox.Show(ex.Solution)
}
Precaución: La programacion puede producir adiccion
DragonFire


Desconectado Desconectado

Mensajes: 848



Ver Perfil WWW
Re: Separar la ruta de un archivo de este.
« Respuesta #9 en: 4 Julio 2006, 06:24 am »

Que tal algo mas sencillo.

         System.Console.WriteLine (Environment.CurrentDirectory.ToString ());
         

checa la documentacion de Environment

ups no habia leido bien,, este viaje con tanto bache me dejo con las ideas revueltas.. veamos debe existir un metodo para eso....
« Última modificación: 4 Julio 2006, 06:37 am por LastDragon » En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Leer un archivo .txt y separar las primeras 3 lineas en 3 variables distintas « 1 2 »
Programación Visual Basic
extreme69 10 11,124 Último mensaje 22 Junio 2011, 04:34 am
por raul338
API que devuelva la ruta de mi archivo?
Programación General
.:UND3R:. 2 2,515 Último mensaje 8 Agosto 2011, 03:26 am
por raul338
ayuda con este archivo
Ingeniería Inversa
sqa 2 2,688 Último mensaje 14 Febrero 2012, 21:09 pm
por MCKSys Argentina
Duda con C++ y ruta de un archivo
Programación General
NaSaRiD15 1 2,215 Último mensaje 28 Febrero 2012, 07:12 am
por Shell Root
Leer archivo y separar por listas ordenadas.
Scripting
riderz44 7 3,471 Último mensaje 16 Noviembre 2016, 17:48 pm
por Once
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines