FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Error de Access denied en aplicación de Descompresión de Archivos en Lazarus
Hola.. como va? les comento que hace poco hice un programa pequeño con Lazarus para realizar varias tareas en un mismo paso...en definitiva lo que hace el programa es: descomprimir unas carpetas que están en formato ZIP, luego renombra los archivos que contienen las carpetas "descomprimidas" y luego copia los archivos renombrados para ser levantados por otro programa.
Venia funcionando lo mas bien hasta que hace unos dias comenzó a tirarme un cartel con el siguiente error: "Access denied. Press OK to ignore and risk data corruption. Press CANCEL to kill the program" ¿Me podrán dar una idea que puede ser lo que esté ocurriendo? saludos... |
#2
|
||||
|
||||
Hola javiparera, bienvenido a Club Delphi
Como es costumbre con los nuevos miembros, te invitamos a leer nuestra guía de estilo. Agrega mas información sobre el problema: Sistema operativo (Lazarus es multiplataforma), momento y situación en que se produce el error, etc. cuantos mas datos aportes sobre el error, mas posibilidades hay de brindarte ayuda. También es muy útil conocer el lugar del código donde estimas que se provoca. Podes usar breakpoints y Ejecutar paso a paso por instrucciones (F7) para circunscribir e identificar la línea que lo provoca. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
||||
|
||||
javiparera,
Cita:
Pregunto: 1- ¿Que Sistema Operativo y de cuantos bits (32/64) utiliza tu aplicación?. 2- ¿Si descomprimes los archivos manualmente, se presenta algún mensaje de error?. 3- ¿Si presionas Ok, los archivos son utilizables o están corruptos?. 4- ¿Puedes publicar el código en cuestión?. Espero sea útil Nelson. |
#4
|
|||
|
|||
Error de programa
Hola ecfisa...el programa está hecho con Lazarus, es un programa portable. Está corriendo sobre Windows XP y no se porque motivo dejó de funcionar... el código interno es este:
Última edición por nlsgarcia fecha: 22-05-2015 a las 20:02:41. Razón: Formateo y Sintaxis Lazarus |
#5
|
||||
|
||||
javiparera,
Cita:
Revisa este código: El código anterior en Lazarus 1.4.0 FPC 2.6.4 sobre Windows 7 Professional x32, Implementa varias rutinas de compresión y descompresión de archivos, así como de borrado de directorios y copia de archivos sin la utilización de APIs de Windows, como se muestra en la siguiente imagen: El código propuesto esta disponible en : Lazarus ZipFile.rar Espero sea útil Nelson Última edición por nlsgarcia fecha: 29-05-2015 a las 18:51:18. |
#6
|
|||
|
|||
Hola Nelson... Muchas gracias por tu aporte. Voy a probar con este codigo que me pasas y luego les comento..
Saludos.. y muchas gracias |
#7
|
|||
|
|||
Hola Nelson..como estas? antes que nada...muchas gracias por tu aporte, estuve probando los módulos y funcionan de maravilla.
Quería consultarte una cosa mas... viste que el programa crea un directorio "Carpeta Zip", pero luego cuando quiere remover el directorio, solo elimina los archivos que están dentro. Uno podría poner una condición que si el directorio no existe entonces lo cree, y listo... pero el tema está en lo siguiente: cuando el programa descomprime, lo hace dentro del directorio "C:\Carpeta Zip" quedando así "C:\Carpeta Zip\tmp" mas los archivos dentro de la carpeta tmp. Cuando remueve, lo que hace es eliminar solamente los archivos de la carpeta tmp, quedando el directorio "C:\Carpeta Zip\tmp" vacío. Lo que necesito hacer de alguna manera, es eliminar TODO, osea, la carpeta Zip y todo su contenido... ¿existe alguna forma de hacer eso? Desde ya muchas gracias |
#8
|
||||
|
||||
javiparera,
Cita:
La función DeleteFolder del código propuesto en el Msg #5, borra recursivamente todo el contenido de una carpeta y la carpeta en si misma. Adicionalmente te sugiero probar la función CopyFiles, esta junto a DeleteFolder son implementadas sin la utilización de APIs de Windows lo que facilita la portabilidad del código. Espero sea útil Nelson. |
#9
|
|||
|
|||
Pero estoy utilizando la función "DeleteFolder" que me propusiste pero no me está funcionando...el resto funciona re bien pero esta función en particular borra todo lo que sea archivos, pero las carpetas las deja.
|
#10
|
||||
|
||||
javiparera,
Cita:
Te comento: 1- La función DeleteFolder, borra recursivamente todo el contenido de una carpeta y la carpeta en si misma. 2- Si la carpeta actual es la carpeta a borrar, DeleteFolder borrara todo su contenido (Archivos y carpetas) recursivamente pero no la carpeta actual en si misma. Espero sea útil Nelson. |
#11
|
|||
|
|||
Entiendo el funcionamiento de la función DeleteFolder...lo que no entiendo es a que te referís con "la carpeta actual". Lo que hago en sí es crear una carpeta auxiliar donde se descompriman los archivos, se renombren y desde ahí se copien a otra carpeta...
Veamoslo de esta forma... creo una carpeta parcial, realizo todas las operaciones y luego cuando esta todo listo, copio en la carpeta Final... luego quiero que la carpeta pacial, desaparezca... ¿como podría hacerlo? |
#12
|
||||
|
||||
javiparera,
Cita:
Te comento: 1- La carpeta actual es la que esta definida por defecto en un programa, ya sea por que : Es la carpeta de ejecución de la aplicación, por la función SetCurrentDir o en este caso particular por que esta abierta en el explorador de Windows. 2- Para verificar el funcionamiento de la función DeleteFolder te sugiero : Crear un programa de prueba en el que se borre una carpeta que no cumpla con ninguna de las condiciones del punto 1. Revisa esta información pertinente a la función DeleteFolder (Es la base de su funcionamiento): Espero sea útil Nelson. |
#13
|
|||
|
|||
Ok...voy a seguir investigando y haciendo pruebas... en principio lo que hice es dejar la carpeta, ya que no se elimina automáticamente, la dejo... lo que hice fue poner una condición. Si el directorio no existe entonces que lo cree y si existe que opere directamente sobre la carpeta y listo...
Lo probé y funciona Aún así haré un modulo a parte y probaré las funciones.. luego te digo que resulta. jeje Abrazo grande y Gracias por tu ayuda capo |
#14
|
||||
|
||||
javiparera,
Cita:
Cita:
Te comento : 1- En el Msg #5 hay un link para descargar y probar el código propuesto. 2- En el código propuesto : Todos los directorios se crean de forma automática, no es necesario crearlos previamente. Revisa esta imagen: Espero sea útil Nelson. Última edición por nlsgarcia fecha: 29-05-2015 a las 21:40:37. |
#15
|
|||
|
|||
Genio Nelson...jeje por el momento lo resolví haciendo:
porque el módulo de remover la carpeta no lo puse que se ejecute a través de un botón..sino que lo mando a llamar, que entiendo debe ser lo mismo, entonces me queda de esta manera: y lo mando a llamar así: saludos.- Última edición por nlsgarcia fecha: 01-06-2015 a las 16:23:39. Razón: Sintaxis Delphi |
#16
|
||||
|
||||
Recuerda poner los tags al código fuente, ejemplo:
Gracias |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Archivos en Lazarus | jbecerra | Lazarus, FreePascal, Kylix, etc. | 6 | 30-03-2015 18:44:19 |
Socket Error #10013. Access denied. | Cabanyaler | Internet | 6 | 23-03-2012 09:06:14 |
error permission denied ? | Ledian_Fdez | MS SQL Server | 1 | 01-11-2011 22:25:14 |
Access denied for user root | Willo | MySQL | 4 | 14-01-2009 22:55:13 |
Error: SQL Server does not exist or access denied | arantzal | Internet | 4 | 17-05-2005 15:31:34 |
|