PDA

Ver la Versión Completa : Copiar carpeta desde cd


peli
12-01-2011, 05:14:18
hola...he el ejemplo descrito mas abajo y me ha servido pero necesito completar algo: necesito saber como puedo copiar el contenido de una carpeta o directorio que tengo en el cd, o sea, no especificamente todo el contenido, sino una carpeta.

por ejemplo he usado este codigo para copiar desde la unidad de cd al disco c:

GetLogicalDriveStrings(SizeOf(Buffer),Buffer);
TmpPC := Buffer;
while TmpPC[0] <> #0 do begin
if GetDriveType(TmpPC) = Drive_CDROM then
WinExec ('xcopy TmpPC carpeta c:\carpeta /s',sw_Hide);
TargetName := 'c:\GESTIONMEDICA\GestionMedica.exe';
TmpPC := StrEnd(TmpPC)+1;
end;

IObject := CreateComObject(CLSID_ShellLink) ;
ISLink := IObject as IShellLink;
IPFile := IObject as IPersistFile;

with ISLink do
begin
SetPath(pChar(TargetName)) ;
SetWorkingDirectory(pChar(ExtractFilePath(TargetName))) ;
end;

SHGetSpecialFolderLocation(0, CSIDL_DESKTOPDIRECTORY, PIDL) ;
SHGetPathFromIDList(PIDL, InFolder) ;
LinkName := InFolder + '\Gestion Medica.lnk';
IPFile.Save(PWChar(LinkName), false) ;

En la linea:

WinExec ('xcopy TmpPC carpeta c:\carpeta /s',sw_Hide);

no se como como especificar el nombre de la campeta que quiero que se compie desde el cd.... una unica carpeta....

por favor ayuda..... y gracias.

Aleca
12-01-2011, 11:10:00
en delphi tenes TFileListBox y en las jvcl tenes el TJvFileListBox que junto con el TJvDirectoryListBox te pueden servir para lo que necesitas.

Saludos :)

Neftali [Germán.Estévez]
12-01-2011, 13:18:39
Hola Peli, bienvenido a los foros.
Cuando coloques código, es aconsejable utilizar los TAG's (http://tinyurl.com/y5ctbot) para que se lea mejor.

Una opción, en lugar de usar comando XCOPY es que realices la copia utilizando las funciones de copia directamente desde Delphi.

Por ejemplo, en este truco (232) (http://www.clubdelphi.com/trucos/index.php?id=232&scroll=0&scrollb=0) tienes como borrar un directorio completo desde Delphi; Es casi el código que tú necesitas, pero en lugar de borrar, en tu caso se trata de copiar.

Aquí tienes otro truco (http://www.clubdelphi.com/trucos/index.php?id=82&scroll=34&scrollb=0), que te permite almacenar una lista de ficheros en un TStrings a partir de una máscara y un directorio. Una vez rellenada la lista basta con recorrerla y hacer la copia.

Por último, si haces una búsqueda en los foros (http://www.clubdelphi.com/foros/search.php), por las palabras COPIAR CARPETA, verás que aparecen varios hilos donde está el código de cómo hacerlo.