Как удалить файл .tpl

 

Советник при работе создаёт много файлов .tpl с уникальными именами. Средствами MQL4 эти файлы никак не удалить.

Подскажите, как удалить файл .tpl по его имени с помощью сторонних библиотек?

 
Andrey Kaunov:

Советник при работе создаёт много файлов .tpl с уникальными именами. Средствами MQL4 эти файлы никак не удалить.

Подскажите, как удалить файл .tpl по его имени с помощью сторонних библиотек?

У вас вопросе - есть ссылка на скрипт

Снимок экрана 2022-01-25 135150

Файлы:
 

Всё правильно, скрипт удаляет файлы из папки каталог_данных\MQL4\Files. Как и все другие файловые функции, он работает только с этой папкой.

А нужно удалить файл из папки каталог_данных\templates\


P.S. Вероятно я неправильно написал тему ветки. Правильнее будет

Как удалить файл из папки:   каталог_данных\templates\

 
Andrey Kaunov #:

Всё правильно, скрипт удаляет файлы из папки каталог_данных\MQL4\Files. Как и все другие файловые функции, он работает только с этой папкой.

А нужно удалить файл из папки каталог_данных\templates\


P.S. Вероятно я неправильно написал тему ветки. Правильнее будет

Как удалить файл из папки:   каталог_данных\templates\

Winapi или dll

штатный FileDelete не имеет туда доступа.

но можно решить символьной ссылкой DATADIR/MQL4/Files/templates <- DATADIR/templates

PS/ что в общем недоработка - ChartApplyTemplate оттуда читать может, FileOpen открыть не может.. с ChartSaveTemplate не экспериментировал, но если он поддерживает одинаковые соглашения имён с Apply и может туда писать то прикольно..

 
Maxim Kuznetsov #:

Winapi или dll

штатный FileDelete не имеет туда доступа.

но можно решить символьной ссылкой DATADIR/MQL4/Files/templates <- DATADIR/templates

PS/ что в общем недоработка - ChartApplyTemplate оттуда читать может, FileOpen открыть не может.. с ChartSaveTemplate не экспериментировал, но если он поддерживает одинаковые соглашения имён с Apply и может туда писать то прикольно..

Это прикольно, но  ChartSaveTemplate туда и пишет. И никакой возможности это изменить нет. Как и удалить оттуда файл.

Если не затруднит, кусочек кода напишите, как удалить сей файл. Я в .dll не силён ))


P.S. Не помешала бы функция удаления таких файлов в штатном наборе MQL

 
Andrey Kaunov #:

Это прикольно, но  ChartSaveTemplate туда и пишет. И никакой возможности это изменить нет. Как и удалить оттуда файл.

Если не затруднит, кусочек кода напишите, как удалить сей файл. Я в .dll не силён ))


P.S. Не помешала бы функция удаления таких файлов в штатном наборе MQL

самый простой способ - сделать символьную ссылку, чтобы от <datadir>/MQL4/Files/templates перенаправлялось в <datadir>/templates

как отправная точка чтобы разобраться вот https://winitpro.ru/index.php/2021/03/03/ispolzovanie-simlink-ssylok-v-windows/ (первое что выдалось яндексом по "символьная ссылка windows)

тогда можно стандартными способами читать/писать/разбирать/удалять шаблоны. 

 
А вы пробовали так делать? Напишите пример, если не затруднит. Я вообще не понял о чём вы. Для меня всё что за пределами MQL, лес дремучий )
 
Andrey Kaunov #:
А вы пробовали так делать? Напишите пример, если не затруднит. Я вообще не понял о чём вы. Для меня всё что за пределами MQL, лес дремучий )

Для меня это тоже было дремучим лесом, но там так всё понятно описано, что без проблем получается. Это надо сделать один раз руками.

 
Вот на jave програмулька (исходник и классы) удаляет все .tpl файлики, с последним временем редактирования больше установленного. Джава рантайм должен быть... Нужно поместить в папку с .tpl файликами и запустить через консоль. Например: "java Main 60000" - будет удалять файлики .tpl со времени последнего редактирования которых прошло больше 60 секунд. Не самое удобное решение. Зато быстро реализованное))
Файлы:
classes.zip  3 kb
 
Да, не самое. Тем более что нужно удалить только один конкретный файл. Но все равно спасибо.
 
Andrey Kaunov #:
Да, не самое. Тем более что нужно удалить только один конкретный файл. Но все равно спасибо.

Пометьте файлики... Добавьте префиксы к именам файликов, которые нужно удалять. Там секунда дела подкорректировать удалятор...