Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
По какой-то причину операционная система не дает удалить файл - то ли он открыт другой программой, то ли прав не хватает.
Именно так. Когда я пытаюсь удалить папку уже содержащую подпапки и файлы, то сначала удаляю файлы. Остаются только подпапки. Их пытаюсь очистить с помощью FolderClean() и потом вызываю FolderDelete(). Однако, в результате те подпапки которые были пусты хорошо удаляются, но если внутри подпапок были еще подпапки - они не удаляются. После этого, я пытаюсь удалить папки из файлового навигатора в MetaEditor вручную, но терминал их не удаляет и выскакивает это окно:
Нажимаю на "Continue", соглашаюсь на изменения, но папка все равно не стирается. После полного закрытия и повторного открытия терминала, папки которые должны были быть стерты либо сами исчезают, либо нет, но при этом их уже можно сразу стереть вручную без вышеприведенного окна.
Вот такие странности...
Что и требовалось доказать: старый терминал НЕ ВИДИТ MQL5 программы. Вы в MQL5 скрипте пытаетесь открыть чужую файловую песочницу.
PS И вообще - не давать логи программы - это заставлять других гадать на кофейной гущеВот посмотрите на этот гиф:
Код этого скрипта я привел выше, на прошлой странице.
Добавлю, что папки которые пытаюсь стереть сначала программно и потом вручную нигде не открыты. Более того, они не могут быть где то открыты кроме самого файлового навигатора в Метаэдитор, поскольку они пусты и файлы из них были до этого стерты. Стертые файлы тоже не были нигде открыты.
Окно с требованием подтверждения администратора для стирания папок вручную в файловом навигаторе в метаэдитор, возникает только при попытке стереть те папки, которые программа пыталась удалить с помощью функций FolderClean() и FolderDelete() ранее. При попытке удаления других папок это окно никогда не появляется.
Почему не срабатывает функция FolderClean() вот в этом скрипте: ?
В результате попытки очищения папки, выдает ошибку 5026 - (папка не может быть очищена).
Данный скрипт взят из документации (раздел функции FolderDelete()) и слегка модифицирован. Для полного удаления папки, которая содержит в себе другие подпапки или файлы необходимо ее очистить. Для этого добавлен вызов функции FolderClean().
А можно поинтересоваться почему нет закрытия файла? Или я просто не вижу?
Вот фрагмент Вашего кода от открытия файла до вопроса об удалении...
А можно поинтересоваться почему нет закрытия файла? Или я просто не вижу?
Вот фрагмент Вашего кода от открытия файла до вопроса об удалении...
Насколько я знаю, если в файл не вносились изменения с помощью функции FileWrite(), то закрывать его не нужно. Функция FileOpen() просто создает новый файл и эта операция не требует закрытия файла. К тому же этот скрипт взят из документации и я там ничего не правил. Только добавил строки с функцией FolderClean().
Но если пройти по коду отладчиком, то сразу после выполнения FileOpen() на диске присутствует файл нулевого размера. А в документации ошибок и неточностей достаточно много.
Но если пройти по коду отладчиком, то сразу после выполнения FileOpen() на диске присутствует файл нулевого размера. А в документации ошибок и неточностей достаточно много.
Так он и должен быть нулевого размера для этого примера.
Сейчас попробую внести в скрипт явное закрытие файла и попробую еще раз.
Так он и должен быть нулевого размера для этого примера.
Сейчас попробую внести в скрипт явное закрытие файла и попробую еще раз.
Результат тот же.
Вот новый код: