PDA

Ver la Versión Completa : Copiar contenido de una carpeta


jbecerra
01-04-2015, 16:21:34
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
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:

...
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.:

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
... 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
...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 (http://www.clubdelphi.com/trucos/imprimir.php?id=15).
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.-