Hola compañeros del foro, mi duda es la siguiente:
Estoy haciendo un programa y lo que quiero es cada vez que guardo unos datos me guardo en la carpeta donde guardo esos datos un archivo .zip.
Como lo tengo hecho ahora lo que hago primeo es copiar todos los archivos a comprimir a la carpeta donde esta el ejecutable del 7zip, una vez copiados los archivos a esa carpeta, lo que hago es ejecutar el winexec que lo que hace es cargarme un archivo .bat, el cual, lo que hace es situarme en el directorio donde esta el ejecutable del zip y luego crearme el zip, una vez que he ejecutado el winexec, ejecuto un sleep para que no tenga problemas de ejecucion.
El problema es que la primera vez que ejecuto el programa la llamada winexec no hace nada pero las restantes veces que lo ejecuto lo hace sin problema:
Las lineas que tengo en el programa son las siguientes:
Código:
rutaT:=directorio + '\';
//Creacion del archivo zip donde se guarda
//los archivos wpa, xml y dtd
copyfile(PChar(rutaT + 'contenido.xml'),
PChar(rutazp + 'contenido.xml'),existe);
copyfile(PChar(rutaT + 'estilo.xml'),
PChar(rutazp + 'estilo.xml'),existe);
copyfile(PChar(rutaT + 'nuevo.dtd'),
PChar(rutazp + 'nuevo.dtd'),existe);
copyfile(PChar(rutaT + nombreA + '.wpa'),
PChar(rutazp + nombreA + '.wpa'),existe);
rutazp1:='"'+rutazp+'"';
zipf:=nombreA + '.wzp';
wpaf:=nombreA+'.wpa';
diractual:=SetCurrentDir(rutazp);
winexec(Pchar('crearzip.bat ' + rutazp1 + ' ' + zipf + ' '
+ wpaf),SW_hide);
sleep(1000);
copyfile(PChar(rutazp + zipf),PChar(rutaT + '\' + zipf),existe);
deletefile(PChar(rutazp + 'contenido.xml'));
deletefile(PChar(rutazp + 'estilo.xml'));
deletefile(PChar(rutazp + 'nuevo.dtd'));
deletefile(PChar(rutazp + wpaf));
deletefile(PChar(rutazp + zipf));
Gracias a todos por adelantado