elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
29 Agosto 2008, 02:50  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (Moderadores: BADBYTE-K, hadess_inf)
| | | |-+  Separar la ruta de un archivo de este.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Separar la ruta de un archivo de este.  (Leído 536 veces)
SeniorX

Desconectado Desconectado

Mensajes: 1.325


Programador Novato


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

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.667



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

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: 03 Julio 2006, 01:22 por Robokop » En línea

SeniorX

Desconectado Desconectado

Mensajes: 1.325


Programador Novato


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

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: 190


MaLkAvIaN_NeT


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

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

SeniorX

Desconectado Desconectado

Mensajes: 1.325


Programador Novato


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

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: 190


MaLkAvIaN_NeT


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

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

MaLkAvIaN_NeT

Desconectado Desconectado

Mensajes: 190


MaLkAvIaN_NeT


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

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

MaLkAvIaN_NeT

Desconectado Desconectado

Mensajes: 190


MaLkAvIaN_NeT


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

Bueno no sería tan diferente hacerlo en C#

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

         
En línea

SeniorX

Desconectado Desconectado

Mensajes: 1.325


Programador Novato


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

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
LastDragon

Desconectado Desconectado

Mensajes: 512


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

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: 04 Julio 2006, 06:37 por LastDragon » En línea

Contactame Last Dragon

Servidor Personal de Last Dragon
Salco Brand

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Separar la ruta de un archivo de este.
« Respuesta #10 en: 24 Octubre 2006, 00:06 »

Puede ser algo asi?

Código:

        Dim Ruta As String
        Dim path As String
        Dim archivo As String

        Ruta = "c:\carpeta1\carpeta2\carpeta3\archivo.exe"
        'Ruta = "/etc/conf.conf"

        If Ruta.IndexOf("\") > -1 Then
            path = Ruta.Substring(0, Ruta.LastIndexOf("\") + 1)
            archivo = Ruta.Substring(Ruta.LastIndexOf("\") + 1)
        ElseIf Ruta.IndexOf("/") > -1 Then
            path = Ruta.Substring(0, Ruta.LastIndexOf("/") + 1)
            archivo = Ruta.Substring(Ruta.LastIndexOf("/") + 1)
        Else
            MsgBox("Ruta no valida")
        End If
En línea
Páginas: [1] Ir Arriba Imprimir 
Ir a:  





Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC