1с занят ли файл

Обновлено: 02.07.2024

В 1С 8.3 (8.2) для работы с файлами существует два объекта: Файл и ДиалогВыбораФайла.

Рассмотрим каждый по отдельности.

Объект Файл служит для управления параметрами файлов.

Сразу стоит заметить, что данный объект не предназначен для чтения и записи из файлов.

Например, прочитаем параметры некоторого файла, находящегося на диске C:

В результате мы получим следующую информацию (если файл найден):

Параметры файла:
Полное имя файла: C:\Работа с файлами\статья.txt
Имя: статья.txt
Имя без расширения: статья
Расширение: .txt
Путь без имени: C:\Работа с файлами\
Размер: 899
Это файл: Да
Изменен: 18.05.2015 16:21:28
Только чтение: Нет
Невидимость: Нет

Запись в файл

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

Теперь, когда мы выбрали и открыли файл, можно с ним работать, т.е. прочитать его содержимое или записать в него что-нибудь.
Рассмотрим пример:

Чтение файла в 1С

Часто бывает необходимо прочитать текст файла построчно, например, для анализа каждой строки. Для этого используем объект ЧтениеТекста.

Запись текста из 1С в файл

Заметим, что при записи текстового файла можно установить кодировку.

Копирование файла

Здесь все очень просто

Перемещение

Удаление

Диалог выбора файла

В указанных выше примерах есть одно неудобство. Путь к файлу прописан жестко в коде. Чтобы выбрать файл интерактивно, существует объект ДиалогВыбораФайла, о котором речь пойдет ниже.

Объект ДиалогВыбораФайла служит для открытия файла (файлов), сохранения файла или выбора каталога в диалоге специального вида.

Например, выберем и откроем некоторый файл с расширением txt:
Задаем режим диалога выбора. Доступны три варианта: ВыборКаталога, Открытие, Сохранение

После прикрепления к письму текстовый файл оказывается занят каким-то процессом
Всем привет! Помогите, пожалуйста, решить проблему. Делаю следующее. По нажатию кнопки программно.

Файл занят другим процессом. Можно ли узнать, когда он станет доступен?
Доброго времени суток! В моем приложении нужно удалить файл (приложением созданный же), но иногда.


Как программно занять файл ("Файл занят другим процессом")?
сабж. делфи 7 как программно занять файл (Файл занять другим процессом)

но программа зависнет если сторонний процесс не отпустит файл, так что тут надо проверку ставить с возможностью юзера прервать проверку.
Можно еще по таймеру реализовать.

Fakels, а что ты хочешь делать с этим файлом когда он освободится? Fakels, а что ты хочешь делать с этим файлом когда он освободится?

Fakels, А да, ссори

Добавлено через 11 секунд
SeregaBarmaley, а что ты хочешь делать с этим файлом когда он освободится?

Yury Komar, удалить. Но программа выдаст ошибку, дескать файл не может быть удалён, так как он занят другим процессом.

SeregaBarmaley, а если создать батник, который будет следить за файлом, и как только файл освободится - удалить его и удалить самого себя?

Добавлено через 50 секунд
SeregaBarmaley, хотя можно и средствами самого NET думаю. попробовать надо

Но программа выдаст ошибку, дескать файл не может быть удалён, так как он занят другим процессом. И на сколько долго этот файл бывает занят сторонним процессом?
И чем тебя не устраивает использовать проверку с использованием оператора On Error Goto И на сколько долго этот файл бывает занят сторонним процессом? SeregaBarmaley, ну давай попробуем средствами NET, если нет, тогда дам тебе пример через БАТНИК, который будет следить за файлом вплоть до перезагрузки компьютера.

Код не работает. Мне нужно, чтобы файл удалялся. Но возникает ошибка, дескать файл занят другими процессом. Код, приведённый выше не работает.

Добавлено через 4 минуты
При нажатии на кнопку, выполняется программный код, который удаляет файл, но файл занят другим процессом, поэтому возникает ошибка и программа останавливается. нужно чтобы программа зациклилась на файле, проверяя его занятость, и когда файл будет свободным, то произойдёт его удаление.

Решение

SeregaBarmaley, ну что, все решаемо, держи готовый код

Yury Komar, Да, это то что нужно, теперь всё работает. При выполнении программного кода, файл проверяется на занятость, и как только файл освобождается, то он удаляется. Тот код по сути и не код а просто как подсказка к реализации кода. не знаю зачем его модератор в тэг кода поместил. Для удобочитаемости. Все, что имеет структуру кода должно заключаться в теги, хоть псевдокод, хоть код на Хаскелле При выполнении программного кода, файл проверяется на занятость, и как только файл освобождается, то он удаляется.

да, всё верно.
А если нужно следить за освобождением файла после прекращения работы вашей программы, то я в этом случ использую BAT или CMD.
[+]: удаляет файл даже после прекращения работы вашего приложения; без диспетчера задач не остановишь цикл; при удалении файла BAT или CMD во время работы цикла - ошибок не будет, цикл работает.
[-]: создаётся доп файл(но это не то чтобы минус, так как в конце-концов он сам себя и удаляет.


Файл занят другим процессом
the process cannot access the file. because it is being used by another process Пытаюсь удалить.


Файл занят другим процессом
При первом выполнении кода все хорошо, но при втором нажатии на кнопку и начале выполнения того же.


Файл занят другим процессом
Вопрос довольно-таки банальный, но я никак не могу его решить. Дело обстоит так: у меня в цикле при.

Файл занят другим процессом
Здравствуйте. Проблема стара как мир, но разобраться с ней у меня не получается. Моя программа в.

Читайте также: