Buenas. Si cambio el directorio con el comando cGetFile(), al volver al programa principal me gustaría que cGetFile() tomara automáticamente la carpeta donde se encuentra dicho programa principal, en lugar de hacerlo manualmente. ¿Existe alguna forma de "forzar" que regrese y utilice la carpeta del ejecutable?
Gracias, tks.
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Hola karinha: En este momento no tengo una máquina a mano pero se me ocurre algo así quizás pueda servirte.
Guardas en una variable el directorio del ejecutable: cDirExe:= CurDir()
Luego con DirChange(cDirExe) volverias al directorio del ejecutable.
Lamentablemente no puedo en este momento probarlo
Saludos
Gracias, El Loco. Ya había probado varias posibilidades, pero no funciona de ninguna manera. No entiendo por qué cGetFile() se queda "atrapado" en el último directorio utilizado.
Buenos días Karinha
Proba después de
cFile := cGetFile( "ImageFile(.bmp;.jpg;.jpeg;.png)|.bmp;.jpg;.jpeg;.png|", ;
"Selecione um Arquivo Para Gravar", CurDir(), .T. )
poner:
DirChange(cDirExe) o
ft_ChDir(cDirExe) esta funcion hace lo mismo que DirChange()
Buenos días Karinha
Proba después de
cFile := cGetFile( "ImageFile(.bmp;.jpg;.jpeg;.png)|.bmp;.jpg;.jpeg;.png|", ;
"Selecione um Arquivo Para Gravar", CurDir(), .T. )
poner:
DirChange(cDirExe) o
ft_ChDir(cDirExe) esta funcion hace lo mismo que DirChange()
// C:\FWH\SAMPLES\cGetLoco.prg - 11/09/2026 - Kapiaba.
#include "FiveWin.ch"
#Include "Directry.ch"
FUNCTION Main()
LOCAL cDirExe := GETCURDIR()
LOCAL cNewDir := cDirExe // "C:\MyFolder"
LOCAL nResult, cFile
IF SUBS( cDirExe, LEN( ALLTRIM(cDirExe ) ) , 1 ) = "\"
cDirExe := SUBS( cDirExe, 1 , LEN( ALLTRIM(cDirExe ) ) - 1 )
ENDIF
nResult := DirChange( cNewDir ) // LCHDIR( cDirExe )
IF nResult == 0
MsgInfo( "Directory changed successfully to: " + cNewDir )
ELSE
MsgStop( "Error: Could not change directory. Check if the path exists." )
ENDIF
// NO FUNCIONA.
cFile := cGetFile( "ImageFile(*.bmp;*.jpg;*.jpeg;*.png)|*.bmp;*.jpg;*.jpeg;*.png|", ;
"Selecione um Arquivo Para Gravar", CurDir(), .T. )
// TAMBIEN NO FUNCIONA.
/*
cFile := cGetFile( "ImageFile(*.bmp;*.jpg;*.jpeg;*.png)|*.bmp;*.jpg;*.jpeg;*.png|", ;
"Selecione um Arquivo Para Gravar", 1, cNewDir, .T. )
*/
IF .NOT. EMPTY( cFile )
xIMAGE( cFile )
ENDIF
// No tiene sentido, ya que al entrar de nuevo en la función, ya estoy en la
// CARPETA DE ORIGEN.
DirChange( cDirExe ) // NO FUNCIONA
// NO FUNCIONA - FALTA ALGO? HBNF.LIB? NO TENGO.
// ft_ChDir(cDirExe) // esta funcion hace lo mismo que DirChange()
// Error: Unresolved external '_HB_FUN_FT_CHDIR' HARBOUR y XHARBOUR.
/*
IF FT_CHDIR( cDirExe ) == 0
? "Diretório alterado com sucesso!"
ELSE
? "Erro ao mudar de diretório."
ENDIF
*/
/*
Dica de modernização: No Harbour moderno, você também pode substituir
o uso da FT_CHDIR() diretamente pela função nativa DirChange() ou
hb_DirChange(), eliminando a necessidade de depender dessa biblioteca
externa.
*/
RETURN NIL
// FIN / END - kapiabafwh@gmail.com
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Estuve probando tu ejemplo ...y tenés razón se queda anclado en el directorio de destino.
Estoy investigando haber si hay algo en cGetFile() que pueda ayudarnos
Saludos
Estuve probando tu ejemplo ...y tenés razón se queda anclado en el directorio de destino.
Estoy investigando haber si hay algo en cGetFile() que pueda ayudarnos
Saludos
Karinha probé todos los samples de Fivewin que contengan cGetFile() y hacen lo mismo quedan colgado en el directorio "destino"
Si no me equivoco me parece que es un tema del propio Windows, que a mi entender no está nada bien o por lo menos dejar la chance de elegir.
Voy a seguir con el tema
Chauchi