Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-08-2010
Avatar de Cañones
Cañones Cañones is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Paz Entre Ríos
Posts: 354
Poder: 18
Cañones Va por buen camino
Cambiar de directorio

Hola a todos.
Necesito cambiar de directorio en base a donde está mi exe.
Código Delphi [-]//...MiPrograma\bin\archivo.exe //Esto lo obtengo con ExtractFilePath(Application.ExeName);

Como hago por medio de código cambiar al directorio
...MiPrograma\data\...

Estuve buscando en le foro pero no pude encontrar la solución.
Si ya existe un hilo con la solución por favor que me avice.
Gracias a todos.
Responder Con Cita
  #2  
Antiguo 24-08-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
chdir

http://www.delphibasics.co.uk/RTL.asp?Name=ChDir
Responder Con Cita
  #3  
Antiguo 24-08-2010
Avatar de Cañones
Cañones Cañones is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Paz Entre Ríos
Posts: 354
Poder: 18
Cañones Va por buen camino
Gracias Casimiro por la pronta respueta.
Pero mi problema es que no se donde va a estar mi aplicación.
Por eso necesito en base a la ruta del .exe subir una carpeta y luego entrar en la carpeta\data.
Espero ser claro.
Gracias nuevamente.
Responder Con Cita
  #4  
Antiguo 24-08-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pues entonces no entiendo
Responder Con Cita
  #5  
Antiguo 24-08-2010
Avatar de Cañones
Cañones Cañones is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Paz Entre Ríos
Posts: 354
Poder: 18
Cañones Va por buen camino
Bueno, vamos desde cero.
Tengo una aplicación X.
La estructura de las carpetas es la siguiente.
...\X -> Directorio principal
...\X\bin -> Directorio con el .exe los .ini y .dll
...\X\data -> Directorio con el .fbd y un archivo .txt para el log

Yo no se donde va a estar la carpeta X, ya que la idea es que sea portable y que se copie y pegue en cualquier lado y salga andando.
Puede estar en C:\X o en C:\Documents and Settings\cañones\Escritorio.
Entonces con la función extractpath puedo saber la ruta completa del .exe.
Como puedo cambiar de directorio laRuta\X\bin a laRuta\X\data.
Mi idea era usar alguna función de delphi, pero si no existe creo mi propio procedimiento.
Muchas gracias.
Saludos.
Responder Con Cita
  #6  
Antiguo 24-08-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
El ejemplo que mostro Casimiro dara la direccion de X/Data.
Código Delphi [-]
var
  directory : string;
begin
  GetDir(2, directory);
  ShowMessage(directory+'\Data');
Asi se puede saber la direccion correcta y ampliar la misma a la carpeta Data.
El dato es string, se puede usar de cualquier forma
Saludos
__________________
Siempre Novato
Responder Con Cita
  #7  
Antiguo 24-08-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Es lo mismo que se puede hacer con ExtractFilePath
Como son datos string se pueden manejar a nuestro antojo:
Código Delphi [-]
var
  programa : string;
begin
  programa:= ExtractFilePath(Application.ExeName);
  ShowMessage(programa+'Data\');

Y asi sucesivamente.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #8  
Antiguo 24-08-2010
Avatar de Cañones
Cañones Cañones is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Paz Entre Ríos
Posts: 354
Poder: 18
Cañones Va por buen camino
Caral, probé los dos ejemplos que me has dejado pero no hace lo que necesito.
El tema es que data está en el mismo nivel que bin, no dentro de bin\data.
Gracias de igual modo.
Me voy a poner a trabajar en un procedimiento que haga lo que necesito.
Cuando lo tenga lo coloco en el hilo.
Gracias a todos.
Responder Con Cita
  #9  
Antiguo 24-08-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pues... no te explicas qué problema tienes... o no te entendemos

devuelve la ruta a tu programa, por ejemplo:
Código:
miruta := extractfilepath(paramstr(0));
Ahora sólo debes añadir la parte que quieras:
Código:
larutadata := miruta + '\data\';
ahora cambiamos a esa ruta
Código:
chdir( larutadata );
Responder Con Cita
  #10  
Antiguo 24-08-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola, lo que yo entiendo es que quiere acceder a un nivel anterior al directorio donde esta su ejecutable, si es eso puedes hacerlo de esta forma:

Código Delphi [-]
directorio:String;
begin
  directorio := ExtractFilePath(Application.ExeName);
  directorio := Copy(directorio, 1, LastDelimiter('\', directorio));
  chdir(directorio+'data');
  directorio := GetCurrentDir;
  ShowMessage('Nueva ruta: '+directorio);

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #11  
Antiguo 24-08-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si quiere ir a un directorio arriba sólo hay que añadirle los dos puntos

Ejemplo: (a lo bruto )
Código:
miruta := extractfilepath(paramstr(0));
cddir( miruta );
cddir( '..\'  );
chdir( 'data' );
Responder Con Cita
  #12  
Antiguo 24-08-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Si quiere ir a un directorio arriba sólo hay que añadirle los dos puntos
Hola Casimiro , sabía que se tenía que aumentar los dos puntos, la prueba que hice me daba error por eso puse el anterior codigo, acabo de probar nuevamente y si funciona como dices .

Código Delphi [-]
  directorio := ExtractFilePath(Application.ExeName);
  chdir(directorio+'..\data');
  directorio := GetCurrentDir;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #13  
Antiguo 24-08-2010
Avatar de Cañones
Cañones Cañones is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Paz Entre Ríos
Posts: 354
Poder: 18
Cañones Va por buen camino
Mil gracias Casimiro y Caro por el tiempo.
Eso es exactamente lo que necesitaba. Por lo visto era un problema al comunicarles mi duda, ya que lo solucionaron muy fácil y de una manera sencilla.
Muchas gracias nuevamente.

Saludos de Cañones.

Última edición por Cañones fecha: 24-08-2010 a las 18:27:05. Razón: Cabio de agradecimientos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cambiar el directorio inicial de XAMPP AzidRain Linux 4 31-01-2008 21:58:50
Como cambiar el directorio de trabajo de una aplicación Javi2 Varios 2 23-11-2004 16:34:38
Cambiar atributos a todo un directorio Walterdf API de Windows 4 20-10-2004 16:55:44
Como cambiar El directorio por defecto! Carlosguiland MySQL 1 10-05-2004 16:54:37
Cambiar el directorio de la BD marys Conexión con bases de datos 1 18-06-2003 12:29:17


La franja horaria es GMT +2. Ahora son las 21:55:11.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi