Directorio Padre De Otro Directorio

Directorio Padre De Otro Directorio
Artículo
Citar    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 - Perfil MP  
tincho [ Lunes, 03 Abril 2017, 17:42 ]


Directorio Padre De Otro Directorio
Comentarios
Citar    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, "/"))




 
jsbsan - Perfil MP  
jsbsan [ Lunes, 03 Abril 2017, 19:32 ]
Citar    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 - Perfil MP  
vuott [ Lunes, 03 Abril 2017, 19:54 ]
Citar    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 - Perfil MP  
tincho [ Lunes, 03 Abril 2017, 21:15 ]
Citar    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.        



 
última edición por shordi el Martes, 04 Abril 2017, 08:19; editado 4 veces 
shordi - Perfil MP  
shordi [ Martes, 04 Abril 2017, 08:14 ]
Citar    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!



 
v3ctor - Perfil MP  
v3ctor [ Martes, 04 Abril 2017, 10:05 ]
Citar    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.

ejemplo-ruta-de-directorio-0.0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: ejemplo-ruta-de-directorio-0.0.1.tar.gz
Tamaño: 68.61 KB
Descargado: 29 veces
ejemplo-ruta-de-directorio-0.0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: ejemplo-ruta-de-directorio-0.0.1.tar.gz
Tamaño: 68.61 KB
Descargado: 29 veces
ejemplo-ruta-de-directorio-0.0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: ejemplo-ruta-de-directorio-0.0.1.tar.gz
Tamaño: 68.61 KB
Descargado: 29 veces




 
tincho - Perfil MP  
tincho [ Miercoles, 05 Abril 2017, 16:32 ]
Citar    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



 
shordi - Perfil MP  
shordi [ Miercoles, 05 Abril 2017, 17:17 ]
Mostrar mensajes anteriores:    
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


 


   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.4191s (PHP: -78% SQL: 178%)
Consultas SQL: 48 - Debug off - GZIP Activado