Autor
|
Tema: Separar la ruta de un archivo de este. (Leído 10,323 veces)
|
SeniorX
Desconectado
Mensajes: 1.347
Programador Novato
|
Eso ... 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 / .... Seguro que hay alguna propiedad, yo por mientras sigo mirando, ojalá alguien sepa.
|
|
|
En línea
|
try { live(); } catch (ShitHappensException ex) { MessageBox.Show(ex.Solution) } Precaución: La programacion puede producir adiccion
|
|
|
Robokop
Desconectado
Mensajes: 1.660
|
porque no intentas con instr para que te devuelva el numero de caracteres que hay antes de 7 y luego con mid la acortas 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
Mensajes: 1.347
Programador Novato
|
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
|
try { live(); } catch (ShitHappensException ex) { MessageBox.Show(ex.Solution) } Precaución: La programacion puede producir adiccion
|
|
|
MaLkAvIaN_NeT
Desconectado
Mensajes: 213
MaLkAvIaN_NeT
|
Para ver la ruta donde corre tu programa en un textbox; 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: 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: 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
Mensajes: 1.347
Programador Novato
|
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
|
try { live(); } catch (ShitHappensException ex) { MessageBox.Show(ex.Solution) } Precaución: La programacion puede producir adiccion
|
|
|
MaLkAvIaN_NeT
Desconectado
Mensajes: 213
MaLkAvIaN_NeT
|
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
Mensajes: 213
MaLkAvIaN_NeT
|
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
Mensajes: 213
MaLkAvIaN_NeT
|
Bueno no sería tan diferente hacerlo en C# for(int i = Ruta.Length ; i<=0; i--)
|
|
|
En línea
|
a por las buenas ideas
|
|
|
SeniorX
Desconectado
Mensajes: 1.347
Programador Novato
|
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
|
try { live(); } catch (ShitHappensException ex) { MessageBox.Show(ex.Solution) } Precaución: La programacion puede producir adiccion
|
|
|
DragonFire
|
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
|
|
|
|
|
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,166
|
22 Junio 2011, 04:34 am
por raul338
|
|
|
API que devuelva la ruta de mi archivo?
Programación General
|
.:UND3R:.
|
2
|
2,554
|
8 Agosto 2011, 03:26 am
por raul338
|
|
|
ayuda con este archivo
Ingeniería Inversa
|
sqa
|
2
|
2,712
|
14 Febrero 2012, 21:09 pm
por MCKSys Argentina
|
|
|
Duda con C++ y ruta de un archivo
Programación General
|
NaSaRiD15
|
1
|
2,250
|
28 Febrero 2012, 07:12 am
por Shell Root
|
|
|
Leer archivo y separar por listas ordenadas.
Scripting
|
riderz44
|
7
|
3,504
|
16 Noviembre 2016, 17:48 pm
por Once
|
|