Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Lazarus, FreePascal, Kylix, etc. (https://www.clubdelphi.com/foros/forumdisplay.php?f=14)
-   -   Copiar contenido de una carpeta (https://www.clubdelphi.com/foros/showthread.php?t=88014)

jbecerra 01-04-2015 16:21:34

Copiar contenido de una carpeta
 
Hola a todos...como les va?
quería saber si me pueden ayudar con la copia de archivos de una carpeta a otra...no puedo usar un bat por razones de seguridad...por eso intento hacerlo desde la aplicación Lazarus. Intenté con copyfile y funciona siempre y cuando especifique la ruta y el archivos... pero no me sirve para èste caso, porque lo que quiero en sí es seleccionar todos los archivos de una carpeta y copiarlos a otra carpeta...
me podrían tirar alguna info sobre que herramienta usar?
desde ya muchas gracias a todos..
saludos.-

Casimiro Notevi 01-04-2015 17:15:31

Exactamente qué quieres hacer.

jbecerra 01-04-2015 17:18:01

Copiar file
 
Lo que quiero hacer es: Copiar todos los archivos de una carpeta y ponerlos en otra carpeta... solo eso.. me puede ayudar?

Casimiro Notevi 01-04-2015 17:21:01

Por eso pregunto, exactamente.
¿Son carpetas fijas, el usuario elige, etc.?

jbecerra 01-04-2015 17:24:27

No.. el usuario no elije la carpeta...las elijo yo, porque al usuario le importa que los archivos aparezcan en la dirección que yo le voy a poner...

jbecerra 01-04-2015 17:44:45

Se entiende lo que quiero hacer? :(

Casimiro Notevi 01-04-2015 19:06:03

Bien, entonces ¿cuál es el problema, en qué parte tienes dudas?

ecfisa 01-04-2015 19:09:04

Hola jbecerra.

Espero haber entendido...

Para Windows:
Código Delphi [-]
... 
implementation

uses Windows, ShellApi;   

procedure CopyFolderFiles(sourceFolder, targetFolder: string);
const
  FOF_NORECURSION = $1000;
var
  SHFOS: SHFILEOPSTRUCT;
begin
  sourceFolder:= IncludeTrailingPathDelimiter(sourceFolder)+'\*.*';
  targetFolder := ExcludeTrailingPathDelimiter(targetFolder);
  ZeroMemory(@SHFOS, SizeOf(SHFOS));
  SHFOS.wFunc:= FO_COPY;
  SHFOS.fFlags:= FOF_FILESONLY or FOF_NORECURSION;
  SHFOS.hNameMappings:= nil;
  SHFOS.pFrom:= PChar(sourceFolder+#0+#0);
  SHFOS.pTo:= PChar(targetFolder+#0+#0);
  SHFileOperation(SHFOS);
end;

Llamada ej.:
Código Delphi [-]
begin
   CopyFolderFiles2('C:\UNA_CARPETA', 'C:\OTRA_CARPETA');

Saludos :)

jbecerra 01-04-2015 19:31:40

Buenísimo...lo pruebo y luego te comento...pero basicamente lo que necesito es lo siguiente: lo hago con un ejemplo:
supongamos que tenemos las carpeta "A" y la carpeta "B"... la carpeta A tiene los archivos a1, a2 y la carpeta B está vacía...entonces: lo que quiero hacer es Copiar los archivos a1, a2 en la carpeta B.
Pruebo el módulo que me pasaste y te comento... De igual forma muchas gracias por tu ayuda...
saludos.-

Casimiro Notevi 01-04-2015 19:36:11

Cita:

Empezado por jbecerra (Mensaje 490766)
... lo que necesito es lo siguiente:
supongamos que tenemos las carpeta "A" y la carpeta "B"... la carpeta A tiene los archivos a1, a2 y la carpeta B está vacía...entonces: lo que quiero hacer es Copiar los archivos a1, a2 en la carpeta B.

Eso es lo que tenías que haber dicho en el primer mensaje ;)

Neftali [Germán.Estévez] 02-04-2015 10:29:47

Cita:

Empezado por jbecerra (Mensaje 490766)
...supongamos que tenemos las carpeta "A" y la carpeta "B"... la carpeta A tiene los archivos a1, a2 y la carpeta B está vacía...entonces: lo que quiero hacer es Copiar los archivos a1, a2 en la carpeta B.

Con este truco puedes obtener el listado de todos los ficheros del directorio.
Ahí puedes especificar la máscara (para seleccionar unos tipos concretos o todos -*.*-) y si quieres realizar esa búsqueda de forma recursiva (para subdirectorios).

Una vez que tengas la llista de ficheros, recorrela y usa CopyFile, Filecopy,...

jbecerra 06-04-2015 14:15:10

jajaja..por ahí soy medio duro para explicarme Casimiro Notevi jaja...anduvo muy bien el modulo que me pasaste capo ecfisa..
:) +10
Muchas Gracias :)
saludos .-.

jbecerra 06-04-2015 14:17:57

Gracias a todos por sus comentarios...han sido de gran ayuda... :)
saludos.-


La franja horaria es GMT +2. Ahora son las 21:27:04.

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