Abrir carpeta contenedora

Abrir carpeta contenedora

Postby leandro » Wed May 04, 2022 7:38 pm

Hola buenas tardes para todos

En nuestra aplicación hacemos importación de varios archivos .CVS y de Excel, desde la aplicación podemos abrir el archivo como tal, pero como hago para abrir la carpeta que contiene el archivo?, entiendo que hay que abrir el explorador de archivos?

De antemano gracias.
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1669
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: Abrir carpeta contenedora

Postby cnavarro » Wed May 04, 2022 8:15 pm

Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6541
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Abrir carpeta contenedora

Postby cmsoft » Thu May 05, 2022 3:21 pm

Hola Leandro, no se si entendí bien la pregunta.
Lo que quieres hacer es abrir una carpeta especifica o que el operador pueda ir explorando las carpetas?
Igualmente, en ambos casos te puede ser de utilidad algo así:
Code: Select all  Expand view

DEFINE DIALOG oDlg TITLE "Importar Recetas Validadas" FROM 05,18 TO 16,62 FONT oFont
   acor := AcepCanc(oDlg)
   @ 07, 05 SAY "Archivo a Importar" OF oDlg PIXEL
   @ 05, 70 GET oGet VAR cFile ;
   ACTION (oGet:cText := cGetFile( "Archivos Excel (*.xls)|*.xls|Todos los Archivos (*.*)|*.*", "Seleccione archivo a importar",, ".\", .f. ));
   OF oDlg PICTURE "
@S20" PIXEL SIZE 70,12 BITMAP "BUSC1"
   @ acor[1],acor[2] BUTTON oBot1 PROMPT "
&Importar" OF oDlg SIZE 30,10 ;
           ACTION ((ok := .t.), oDlg:End() ) PIXEL WHEN(!EMPTY(oGet:cText)) UPDATE
   @ acor[3],acor[4] BUTTON oBot2 PROMPT "
&Cancelar" OF oDlg SIZE 30,10 ;
           ACTION ((ok := .f.), oDlg:End() ) PIXEL
ACTIVATE DIALOG oDlg CENTER

cGetFile te permite indicar que tipos de archivos deseas poder ver y el 4° parametro cual es la carpeta inicial donde buscar...
Espero te sirva de guia.
User avatar
cmsoft
 
Posts: 1283
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Abrir carpeta contenedora

Postby leandro » Mon May 09, 2022 3:22 pm

Cesar gracias por responder

No, lo que quiero hacer es lo siguiente:

Image

Similar a lo que hace el menú de inicio del windows, lo que necesitamos es abrir el explorador de Windows, pero que abra en la carpeta que nosotros le indiquemos.

De antemano gracias
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1669
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: Abrir carpeta contenedora

Postby Garbi » Mon May 09, 2022 4:48 pm

Yo lo hago así, a ver si es lo que necesitas :
Este ejemplo lo que hace es que abre el explorador de Windows en una determinada carpeta creada automáticamente por el programa anteriormente y sino existe abre la carpeta contenedora de donde debería estar esa carpeta determinada.

Code: Select all  Expand view
STATIC FUNCTION PARCARPETA()
vres:=45
    if lIsDir("..\trabajo\"+alltrim(str((cpartes)->numero))+"."+alltrim((cpartes)->nombre)+"."+alltrim((cpartes)->detalle))
        vres:=ShellExecute(oApp:oWndMain,Nil,"
..\trabajo\"+alltrim(str((cpartes)->numero))+"."+alltrim((cpartes)->nombre)+"."+alltrim((cpartes)->detalle),"","",3 )
    else
        vres:=ShellExecute(oApp:oWndMain,Nil,"
..\trabajo\"+alltrim(str((cpartes)->numero))+"."+alltrim((cpartes)->nombre),"","",3 )
    endif
if  vres = 42
    return nil
else
    ShellExecute(oApp:oWndMain,Nil,"
..\trabajo\","","",3 )
endif

return nil
Saludos,
Regards,

Jose Luis Alepuz
joseluis@mancomputer.com
www.mancomputer.com
Garbi
 
Posts: 333
Joined: Wed Nov 02, 2005 3:28 pm

Re: Abrir carpeta contenedora

Postby leandro » Tue May 10, 2022 3:59 pm

Excelente amigo, era lo que necesitaba, muchas gracias. :D
Code: Select all  Expand view

ShellExecute(oWnd,Nil,".\dbfs\lamtem\","","",1 )

ShellExecute( hndWin,cAction,cFileName,cParams,cDir,nShowWin )
Los parámetros que puede recibir son:
hndWin. Es un número entero que representa al handle del programa que llamó a la función.
cAction. La acción que deseamos ejecutar
cFileName. El nombre del archivo o de otro objeto, en el cual la acción será ejecutada.
cParams. Si en cFileName pusimos el nombre de un programa ejecutable, estos son los parámetros que ese programa recibiría en la línea de comandos.
cDir. Si en cFileName pusimos el nombre de un programa ejecutable, esta es la carpeta (o directorio) por defecto, es decir donde se iniciará.
nShowWin. El estado inicial de la ventana (1=normal, 2=minimizada, 3=maximizada).
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1669
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 52 guests