Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como crear una carpeta (https://www.clubdelphi.com/foros/showthread.php?t=39060)

fdoterre 09-01-2007 17:40:19

Como crear una carpeta
 
hola les queria pedir si me podian decir comopuedo crear una carpeta de forma automatica sin que el usuario la tenga que crear, es para almacenar la clave de un programa, quiero que el archivo de la clave quede dentro de esa carpeta.

dec 09-01-2007 17:42:30

Hola,

Código Delphi [-]
CreateDir('C:\nueva carpeta');

Bicho 09-01-2007 17:43:24

Hola,

tan fácil como ésto:

Código Delphi [-]
uses Sysutils;

...

procedure CreaDirectorio(nombredir : String);
begin
   if not DirectoriExists(nombredir) then CreateDir(nombredir);
end;

Espero te sirva.

Saludos

EDITO: Se me ha adelantado David, ojo por ojo... :p

dec 09-01-2007 17:51:19

Hola,

Donde las dan las toman... :D :D

Por cierto... al cabo "CreateDir" termina usando (en Windows) la función "CreateDirectory", que también podríamos usar nosotros directamente:

Código Delphi [-]
  if not CreateDirectory(PChar('C:\Nueva carpeta'), nil) then
    ShowMessage(SysErrorMessage(GetLastError));

jymy788 03-09-2007 20:03:54

Por seguir con el hilo, CreateDir y CreateDirectory, que hacen lo mismo, no permite crear directamente la estructura de directorios de forma "recursiva", es decir, si yo hago CreateDir(PChar('c:\temp\kk')); no se crea el directorio C:\Temp\kk directamente.

Hay que programarse esto o hay alguna función extendida que lo haga

Saludos y perdón por la ignorancia

Gracias

dec 03-09-2007 20:06:50

Hola,

Cita:

Hay que programarse esto o hay alguna función extendida que lo haga
Creo que hablamos de ello esta mañana en otro Hilo. La función que buscas es "ForceDirectories" y se encuentra en la unidad "SysUtils.pas".

jymy788 03-09-2007 20:13:40

eres un crack DEC.

Yo no participé en el hilo que comentas pero bueno, ya he aprendido algo más.

Solo me queda una cosa que preguntar:

Si yo hago lo siguiente

Código:

fileDir := 'c:\temp\kk';
CopyFile('aplicacion.exe', PChar(fileDir), true);

No se supone que busca aplicacion.exe en el directorio donde se está ejecutando la aplicación Dephi en ese momento y debería de hacer una copia de este fichero al directorio especificado en "fileDir" ??

dec 03-09-2007 20:41:16

Hola,

Si no estableces la ruta completa del archivo... si no me equivoco se "buscará" en el directorio "activo" en ese momento (revisa las funciones "GetActiveDir", "SetActiveDir"). Pero si lo que quieres es copiar el ejecutable de tu aplicación nada te impide usar "ParamStr(0)",... que contiene la ruta completa del ejecutable de tu aplicación.

jymy788 03-09-2007 20:55:26

Dec, la verdad es que he probado eso ya y nada.

De hecho, me he ido al ejemplo tonto

Código:

ok := CopyFile(PChar('c:\CLDMA.LOG'), PChar('c:\JYM'), true);
donde 'c:\CLDMA.LOG' existe y 'c:\JYM' también y no copia el fichero CLDMA.LOG al directorio C:\JYM y no tengo ni idea de por qué

dec 03-09-2007 21:05:25

Hola,

Pues debería copiarlo... tal vez puedas echar un vistazo a "GetLastError()" cuando la función falle de modo que obtengas algo más de información. Y no sé si quizás hay que indicar el directorio de destino con una barra al final: "c:\JYM\", o bien incluso hay que indicar un nombre para el archivo en cuestión, es decir, en este caso: "c:\JYM\CLDMA.LOG".

jymy788 03-09-2007 21:08:03

No puedo hacer otra cosa que quitarme el sobrero.

Había probado a poner las barras "\" a quitarlas, todo menos a ponerle el nombre al fichero de destino.

Lo dicho anteriormente, mil gracias


La franja horaria es GMT +2. Ahora son las 11:52:05.

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