ФайловыйПоток.ИмяФайла

Свойства · FileName

Тип: Строка. Содержит полное имя файла, включая путь.

Полное описание, параметры и ограничения

ФайловыйПоток.ИмяФайла (FileStream.FileName)

ФайловыйПоток (FileStream)

ИмяФайла (FileName)

Доступен, начиная с версии 8.3.9.

Использование:
Только чтение.
Описание:
Тип: Строка.
Содержит полное имя файла, включая путь.
Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Использование в версии:

Доступен, начиная с версии 8.3.9.

Методическая информация

Практические примеры

Создать собственный файловый поток и записать шесть байтов

Режим СоздатьНовый защищает существующий файл от перезаписи. Проверяем возможности потока, имя, позицию и размер на ASCII-строке ABC123.

Где и как запускать

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

Подготовка

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

  2. Пример получает новое временное имя и использует СоздатьНовый, не Создать. Чужой существующий файл никогда не открывается для перезаписи.

  3. После завершения/ошибки закрываются только созданные потоки и удаляется только точное собственное имя. Это не резервная копия и не операция над вашими XML.

ИмяФайла = ПолучитьИмяВременногоФайла("bin");
УчебныйФайл = Новый Файл(ИмяФайла);
Если УчебныйФайл.Существует() Тогда
    ВызватьИсключение "Временное имя уже занято: чужой файл не открываем";
КонецЕсли;
Поток = Неопределено;
Вид = Неопределено;
Копия = Неопределено;
СозданСвойФайл = Ложь;
Попытка
    Поток = Новый ФайловыйПоток(ИмяФайла, РежимОткрытияФайла.СоздатьНовый, ДоступКФайлу.ЧтениеИЗапись);
    СозданСвойФайл = Истина;
    Сообщить(Поток.ИмяФайла = ИмяФайла);
    Сообщить(Поток.ДоступнаЗапись);
    Сообщить(Поток.ДоступноЧтение);
    Сообщить(Поток.ДоступноИзменениеПозиции);
    Буфер = ПолучитьБуферДвоичныхДанныхИзСтроки("ABC123", КодировкаТекста.UTF8, Ложь);
    Поток.Записать(Буфер, 0, Буфер.Размер);
    Сообщить(Поток.Размер() = 6);
    Сообщить(Поток.ТекущаяПозиция() = 6);
    Поток.СброситьБуферы();
    Сообщить(УчебныйФайл.Размер() = 6);
Исключение
    Если Вид <> Неопределено Тогда
        Вид.Закрыть();
    КонецЕсли;
    Если Копия <> Неопределено Тогда
        Копия.Закрыть();
    КонецЕсли;
    Если Поток <> Неопределено Тогда
        Поток.Закрыть();
    КонецЕсли;
    Если СозданСвойФайл И УчебныйФайл.Существует() Тогда
        УдалитьФайлы(ИмяФайла);
    КонецЕсли;
    ВызватьИсключение;
КонецПопытки;
Если Вид <> Неопределено Тогда
    Вид.Закрыть();
КонецЕсли;
Если Копия <> Неопределено Тогда
    Копия.Закрыть();
КонецЕсли;
Если Поток <> Неопределено Тогда
    Поток.Закрыть();
КонецЕсли;
Если СозданСвойФайл Тогда
    УдалитьФайлы(ИмяФайла);
КонецЕсли;
Сообщить(Не УчебныйФайл.Существует());

Разбор по шагам

  1. Проверка существования выполняется до блока создания/очистки. СоздатьНовый также не затирает файл при конфликте имени.

  2. Сначала читаем три признака доступности операций. Они относятся к потоку, не к правам всех файлов каталога.

  3. ASCII без BOM даёт шесть байтов. Записать продвигает позицию, СброситьБуферы завершает буферизованную передачу в файл.

Как проверить результат

  1. Семь сравнений до очистки Истина: три возможности, имя, размер, позиция, размер файла.

  2. Файловый поток закрывается до удаления. Сам каталог временных файлов не удаляется.

  3. Последнее сообщение Истина: точный собственный временный файл удалён после закрытия ресурсов.

Ожидаемый результат

Создан, проверен и удалён только собственный шестибайтный файл.

На что обратить внимание

  1. СброситьБуферы не равен резервному копированию и не обещает защиту от внезапного выключения питания.

  2. Режим Создать перезаписывает существующее содержимое; в этом уроке он не применяется.

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

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.