Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Por alguna razón, el sistema operativo no permite eliminar el archivo - o bien está abierto por otro programa, o no está suficientemente autorizado.
Exactamente así. Cuando intento borrar una carpeta que ya contiene subcarpetas y archivos, primero borro los archivos. Sólo quedan las subcarpetas. Intento limpiarlas usando FolderClean() y luego llamo a FolderDelete(). Sin embargo, el resultado es que aquellas subcarpetas que estaban vacías se borran bien, pero si había más subcarpetas dentro de las subcarpetas no se borran. Después de eso, intento eliminar las carpetas del navegador de archivos en el MetaEditor manualmente, pero el terminal no las elimina y aparece esta ventana:
Hago clic en "Continuar", acepto los cambios, pero la carpeta sigue sin borrarse. Después de cerrar por completo y volver a abrir el terminal, las carpetas que deberían haber sido borradas desaparecen por sí solas o no, pero puedes borrarlas inmediatamente y de forma manual sin la ventana anterior.
Tales rarezas...
Lo que tenía que probar: el viejo terminal NO VE los programas MQL5. Estás tratando de abrir la caja de arena de archivos de otra persona en el script MQL5.
PS Y en general - no dar los registros del programa es obligar a otros a adivinar por los posos del caféEcha un vistazo a este gif:
He dado el código para este script arriba, en la página anterior.
Debo añadir que las carpetas que estoy intentando borrar primero por software y luego manualmente no se abren por ningún lado. Además, no se pueden abrir en ningún sitio, salvo en el propio navegador de archivos del MetaEditor, porque están vacíos y los archivos de los mismos fueron borrados previamente. Los archivos borrados tampoco se han abierto en ningún sitio.
La ventana que pide la aprobación del administrador para borrar manualmente las carpetas en el navegador de archivos en el MetaEditor sólo aparece cuando se intenta borrar las carpetas que el programa intentó borrar usando FolderClean() y FolderDelete() anteriormente. Esta ventana nunca aparece cuando se intenta eliminar otras carpetas.
¿Por qué falla la función FolderClean() de este script?
Al intentar limpiar una carpeta se produce el error 5026 - (no se puede limpiar la carpeta).
Este script está tomado de la documentación ( sección de la función FolderDelete()) y ligeramente modificado. Para eliminar completamente una carpeta que contiene otras subcarpetas o archivos, hay que borrarla. Para ello se añade una llamada a FolderClean().
¿Puedo preguntar por qué no se cierra el expediente? ¿O es que no lo veo?
Aquí hay un fragmento de su código desde la apertura del archivo hasta la petición de borrado...
¿Puedo preguntar por qué no se cierra el expediente? ¿O es que no lo veo?
Aquí hay un fragmento de su código desde la apertura del archivo hasta la pregunta sobre el borrado...
Hasta donde yo sé, si no se han realizado cambios en el archivo mediante FileWrite(), no es necesario cerrarlo. La función FileOpen() simplemente crea un nuevo archivo y esta operación no requiere cerrar el archivo. Además, este script está sacado de la documentación y no he cambiado nada allí. Acabo de añadir líneas con la función FolderClean().
Pero si miras el código usando el depurador, verás que inmediatamente después de que se ejecute FileOpen(), hay un archivo con tamaño nulo en el disco. Y hay bastantes errores e inexactitudes en la documentación.
Pero si se revisa el código con el depurador, hay un archivo de tamaño cero en el disco justo después de ejecutar FileOpen(). Y hay bastantes errores e inexactitudes en la documentación.
Así que debería ser de tamaño cero para este ejemplo.
Ahora trataré de cerrar explícitamente el archivo en el script y lo intentaré de nuevo.
Así que debería ser de tamaño cero para este ejemplo.
Voy a intentar un cierre explícito del archivo en el script y volveré a intentarlo.
El resultado es el mismo.
Aquí está el nuevo código: