Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Directorio Padre De Otro Directorio
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Directorio Padre De Otro Directorio 
 
Hola a todos.

Estoy intentando obtener el directorio inmediatamente superior de un directorio dado.

File.Dir("/ruta/a/unarchivo.txt") me devuelve "/ruta/a/", el directorio que contiene al archivo "unarchivo.txt" pero... ¿Como se hace con un directorio?

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Directorio Padre De Otro Directorio 
 
Tincho:

Citar:
Estoy intentando obtener el directorio inmediatamente superior de un directorio dado.


Puedes hacer esto:
RutaPadre=  Mid$(RutaHijo, 1, RInStr(RutaHijo, "/"))

 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Directorio Padre De Otro Directorio 
 
Sólo por curiosidad, es posible utilizar la función externa "dirname( )" de la libreria libc.so.6.

Exemplum simplex:
Library "libc:6"

' char *dirname (char *__path)
' Return directory part of PATH or "." if none is available.
Private Extern dirname(__path As String) As String


Public Sub Main()
 
 Dim s As String
 
  s = dirname("/dev/snd")
  
  Print s
  
End

 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Directorio Padre De Otro Directorio 
 
Bueno de momento hice esta funcion.

Public Function DirParent(strPath As String) As String  ''Devuelve el directorio padre de otro que se pasa como parámetro.

  Dim strParent As String
  Dim intLast As Integer

  If strPath <Then> 1 Then
      If String.Right(strParent) = "/" Then
        strParent = String.Mid(strParent, 1, String.Len(strParent) - 1)

      Endif
    Endif
  Endif

  If Exist(strParent) = False Then
    strParent = "-1"
  Else
    If Stat(strParent).Type <> gb.Directory Then
      strParent = "-1"
    Endif
  Endif

  Return strParent

End
 


Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Directorio Padre De Otro Directorio 
 
Otra forma:
Padre=(split(mipath, "/")[Split(mipath, "/").Max - 1]


y otra (ésta para un path que incluya nombre de fichero):

Padre = File.Dir(File.Dir(mipath))


Sólo por liarla un poco más.        
 




===================
No podemos regresar
 
última edición por shordi el Martes, 04 Abril 2017, 09:19; editado 4 veces 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Directorio Padre De Otro Directorio 
 
vuott escribió: [Ver mensaje]
Sólo por curiosidad, es posible utilizar la función externa "dirname( )" de la libreria libc.so.6.

Exemplum simplex:
Library "libc:6"

' char *dirname (char *__path)
' Return directory part of PATH or "." if none is available.
Private Extern dirname(__path As String) As String


Public Sub Main()
 
 Dim s As String
 
  s = dirname("/dev/snd")
  
  Print s
  
End


excelente ejemplo!
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Directorio Padre De Otro Directorio 
 
Hola a todos.

He recopilado todas la propuestas y las puse en un ejemplo para ver las diferentes maneras de hacer lo mismo.
Finalmente, me parece que la opción optima es:
File.Dir(strPath)
 

Debido a que, ademas de ser la mas simple, es una función gambas. Yo pensé que al pasarle un directorio a la función File.Dir  esta no me lo reconocería como archivo y punto, pero se ve que trabaja tanto con un nombre de archivo como con un nombre de directorio.

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Directorio Padre De Otro Directorio 
 
Haberlo dicho... yo creí entender que lo que buscabas era el directorio "abuelo", es decir el directorio padre de un directorio...

Efectivamente file.Dir es lo correcto, como file.name te da el nombre
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Ayuda Directorio Aplicaciones daxos General 10 Jueves, 22 Septiembre 2011, 12:26 Ver último mensaje
daxos
No hay nuevos mensajes Abrir Directorio Y Que No Sea Con Nautilus? Agamenon General 9 Sabado, 07 Abril 2012, 17:06 Ver último mensaje
Agamenon
No hay nuevos mensajes Directorio Del Proyecto Shell General 5 Lunes, 05 Junio 2017, 11:02 Ver último mensaje
tincho
No hay nuevos mensajes Seleccionar Más De Un Directorio Shell General 7 Lunes, 25 Septiembre 2017, 09:10 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario