Как найти файлы в каталоге по маскам

Поиск файлов

Маска — это условие
(шаблон) для поиска файла с использованием
символов «*» и
«?». Знак «*» заменяет любое количество
символов в маске в пределах от 1 до 211,
знак «?» —
один произвольный символ или его
отсутствие.

Примеры создания
масок:

*.
* — поиск всех файлов из указанного
диапазона поиска;

*.doс
— поиск всех файлов с расширением dос;

???. * — поиск всех
файлов с именем не более чем из трех
символов;

а*. * — поиск всех
файлов, имена которых начинаются на
букву «а».

Чтобы осуществить
поиск объектов, необходимо в главном
меню Пуск
выбрать
команду Поиск,
появится
диалоговое окно Результат
поиска.

Для того чтобы
приступить к поиску, необходимо следовать
указаниям на левой панели:

  • если нужно найти
    файлы и папки, выберите соответствующий
    пункт;

  • в
    поле Часть
    имени файла или имя файла целиком:
    (рис.
    11)
    ввести
    имя файла
    или задать маску поиска;

  • в поле Слово
    или фраза в файле:
    можно
    ввести фрагмент текста, который должен
    содержать искомый файл;

  • в поле Поиск
    в:
    выбрать
    диск, на котором будет проведен поиск;

  • с помощью
    дополнительных условий: Когда
    были произведены последние изменения?,
    Какой размер файла?, Дополнительные
    параметры
    можно
    найти файлы, которые были созданы или
    изменены в течение определенного
    периода времени; определить размер
    искомого файла;

  • щелкнуть на кнопке
    Найти.

Задания
для тренировки 9.
Поиск
файлов.

  1. На
    всем компьютере найти все файлы с
    расширением bmр.

  2. Скопировать из
    окна поиска два файла в папку под своей
    фамилией.

  1. На всем компьютере
    найти файлы с расширением txt,
    имя которых начинается на букву «г».

  1. Скопировать три
    файла в папку под своей фамилией.

  1. На всем компьютере
    найти файлы, в середине имени
    которых есть буквосочетание «st».

  1. Скопировать три
    файла в папку Письма.

  1. На
    всем компьютере найти файлы с расширением
    txt,
    размером не менее 5 Кб и созданные
    за последние шесть месяцев.

  1. Скопировать два
    файла в папку Письма.

  1. На всем компьютере
    найти файлы, в имени которых
    последняя или предпоследняя буква
    «d».

  1. Скопировать два
    файла в папку Письма.

Задания
для тренировки 10.
Удаление
файлов и папок.

  1. В папке Письма
    выделить
    два файла и удалить.

  2. Очистить содержимое
    папки Корзина.

Программа
Проводник
Рекомендации
к
выполнению заданий

Проводник — это
служебная программа, относящаяся к
категории диспетчеров файлов. Она
предназначена для навигации по файловой
структуре компьютера и ее обслуживания.
Проводник полностью внедрен в операционную
систему ^УшсЬлуз
ХР.
Окно программы Проводник имеет две
рабочие области: левую панель — панель
папок и
правую панель — панель содержимого.

Программу Проводник
можно запустить:

  1. с помощью команды
    контекстного меню кнопки Пуск, Проводник;

  2. с
    помощью команды Проводник контекстного
    меню значка Мой компьютер. Примечание.
    В
    операционной системе ^пкюамз
    ХР
    окно Проводника можно отобразить,
    непосредственно открыв любое окно,
    например папку Мои

документы,
в этом случае должна быть включена
кнопка Папки на
панели

инструментов
Обычные кнопки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Быстрый поиск файлов и папок по маске Что это такое и как это сделать?

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

Для Windows систем это символ? или символ *
? — означает любой символ или его отсутствие
* — означает любое число символов.

Н-р если есть файлы:
123.txt
123.doc
12.txt
1.txt
223.txt

И маска будет 12?.* — то отберутся файлы 12.txt, 123.doc и 123.txt
Если маска будет 1*.txt то отберутся все файлы, начинающиеся с 1 с расширением .txt (все кроме 123.doc и 223.txt)

Проверить это всё можно:

Клавишами Win+F или Пуск — Найти

Или в командах DOS типа dir и в файловых менеджерах типа Far или TotalCommander н-р

Насчет того, что? обязательное наличие любого символа 😉
В windows 10 (или 7) зайдите в папку windows
Проводник — это же приложение windows? 🙂
В строке поиска наберите:
?a*
Любуйтесь результатом, который прилагается:

Программы для поиска файлов

Все пользователи Windows рано или поздно сталкиваются с необходимостью поиска на компьютере файлов и папок. Эта задача может быть реализована с использованием стандартного инструментария операционной системы либо при помощи специализированных программ. Начнем с рассмотрения функций поиска Windows 10, о которых знают далеко не все пользователи.

Поиск файлов в Windows 10 стандартными средствами

Для поиска файлов и папок на компьютере традиционно используется встроенный в «Проводник» поисковый инструментарий. Незнакомые с функционалом этого инструментария пользователи выполняют поиск только по имени искомого объекта. Но у него есть и другие возможности, позволяющие находить объекты по маске, дате, размеру, тегам, типам, названию учетной записи Windows файл/папку, из-под которой был создан объект. Кроме того, встроенный системный поиск позволяет задавать условия поиска.

Поиск файлов в Windows 10 по маске

Данная функция позволяет искать объекты, названия которых пользователю неизвестны точно. Для этого используются специальные подстановочные знаки. В основном используются два знака:

  • «?». Данным знаком заменяется один символ в названии файла/папки. Например, если необходимо найти файл «песенка», в качестве поискового запроса можно использовать «песенк?». Т.е. Windows будет искать объект, название которого начинается с «песенк», а заканчивается любым символом.
  • «*». Знак заменяет неограниченное количество символов. Удобно использовать, например, для поиска файлов с определенным расширением. К примеру, запрос «*.txt» выведет все файлы с расширением «.txt», независимо от их названия. В такой запрос как «П*» выведет все файлы и папки, названия которых начинаются на «П».

Оба этих знака можно объединять в одном поисковом запросе. Например, если ввести «*mo?a», отобразятся объекты, в названии которых присутствует слог «mo», после которого может стоять любой символ, но вот после него должна быть буква «a».

Использование 0-1

Поиск (фильтрация) по дате, размеру, типам, тегам

Поиск «Проводника» позволяет фильтровать результаты поиска по различным критериям. Для этого в запрос вводится специальная команда, после которой следует двоеточие и ее параметр. Фильтры можно использовать вместе с названиями, включая те, что написаны с использованием подстановочных записей.

  • «Дата». Выводит объекты, созданные в указанную дату или в определенном временном интервале. Например, запрос «*.png дата:‎09.‎01.‎2021» выведет файлы с расширением «.png», созданные 9 января 2021 года.
  • «Тип». Фильтрация файлов по таким типам, как музыка, видео, документ и т.д.
  • «Размер». Выводит файлы указанного размера в байтах, килобайтах, мегабайтах и т.д. Также можно использовать диапазоны и предлагаемые системой параметры (выводятся на экран после ввода «размер:») – «Крошечные» (0-16 Кб), «Огромные» (1-4 Гб) и другие диапазоны.
  • «Тег». Некоторые файлы в Windows могут помечаться тегами самой системой или пользователем. И их можно вводить в качестве фильтра для поиска. Для справки: при сохранении документов в Word также имеется возможность ввода тегов вручную.

Поиск файлов по дате в Windows

  • «Пользователь». Параметр, служащий для отображения файлов, созданных в конкретной учетной записи Windows.

Как и в предыдущем случае, в одном поисковом запросе можно использовать несколько параметров.

Использование логических операторов и условий в поиске Windows 10

Еще одна интересная особенность встроенного в «Проводник» поиска – возможность использования логических операторов и задания условий, которым должны соответствовать искомые объекты. Вот наиболее востребованные:

  • «AND» или «И» (можно использовать английское и русское написание оператора, но в любом случае его нужно писать прописными буквами). Выводит объекты, соответствующие ключевым словам, помещенным по обе стороны оператора. Например, запрос «1 И 2» отобразит файлы/папки, в названиях которых присутствует обе эти цифры.
  • «OR» или «И». Выводит объекты, в именах которых присутствует либо первое, либо второе ключевое слово. Например, запрос «1 ИЛИ 2» приведет к выводу следующего результата:

Использование операторов условий в поиске Windows

  • «NOT» или «НЕ». Ищет объекты, соответствующие ключевому слову, стоящему до оператора «НЕ», но не содержащее ключевое слово после этого оператора. Т.е., запрос «1 НЕ 2″ выведет файлы/папки с цифрой 1, но без цифры 2 в имени.
  • Операторы «<» и «>» (меньше/больше). Используются, например, при поиске файлов размером больше и/или меньше указанного значения. Например, запрос «размер:>50кб размер:<100кб» отобразит файлы больше 50, но меньше 100 килобайт:

Поиск файлов по размеру в Windows

Использование специализированных программ для поиска файлов

Стандартные поисковые средства в операционных системах Windows далеко не всегда удовлетворяет требованиям пользователей, сталкивающихся с необходимостью поиска файлов на компьютере. Это особенно заметно, когда поиск выполняется среди большого (несколько тысяч) количества файлов. Стандартный инструментарий Windows уступает специализированным программам не только в скорости, но и в удобстве использования и функциональных возможностях. Рассмотрим популярные приложения, созданные для поиска данных на компьютере.

Wise JetSearch

Wise JetSearch — небольшая и простая в использовании программа, предназначенная исключительно для поиска файлов на дисках и внешних накопителях. Поддерживаются устройства хранения, отформатированные в формате FAT12, FAT16, FAT32, exFAT и NTFS. Не сказать, что эта утилита обладает какими-либо выдающимися способностями, однако скорость ее работы очень высокая.

При запуске утилита индексирует файлы и папки на дисках и внешних носителях, создавая собственную базу данных. Пользователю достаточно ввести хотя бы одну букву/цифру/символ в качестве поискового запроса и программа Wise JetSearch практически моментально выдаст результат. Причем скорость поиска практически не зависит от количества обнаруженных совпадений — будь то один объект или несколько тысяч.

Программа Wise JetSearch

В плане дополнительных функциональных возможностей Wise JetSearch отметим:

  • Возможность использования подстановочных знаков «*» и «?» для замены любого количества или одного символа, соответственно.

Wise JetSearch

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

Просмотр содержимого файла в Wise JetSearch

Отдельно отметим возможность Wise JetSearch интегрироваться в систему в качестве раскрывающегося виджета, который может заменить собой стандартный системный поиск. Главное окно программы необязательно держать открытым. При вводе поискового запроса в виджет оно автоматически откроется и покажет результат поиска.

Виджет Wise JetSearch

Everything

Everything — более мощная в плане поискового функционала программа. Утилита также распространяется бесплатно и полностью поддерживает русский язык. Принцип работы данной программы на первоначальном этапе повторяет таковой у Wise JetSearch — утилита индексирует файлы и папки, размещая их имена и местоположение в своей базе, благодаря чему последующий поиск будет осуществляться мгновенно.

Everything

Программа Everything обладает довольно широким функционалом и имеет множество «фишек», делающих работу с ней простой, удобной и эффективной. И в их число входит не только поисковые возможности. Отметим следующие моменты:

  • Множество вариантов сортировки результатов поиска с возможностью быстрого переключения между ними посредством горячих клавиш.

Программа Everything

  • Поиск файлов по типу (видео, аудио и т.д.), с учетом регистра букв, с использованием регулярных выражений и фильтров.

Меню

  • Возможность создания неограниченного количества собственных фильтров с учетом всех доступных функций поиска. Фильтры также могут быть применены путем нажатия заданных пользователем горячих клавиш.

Фильтрация файлов в Everything

  • Возможность подключения к уделенным или локальным ETP/FTP-серверам и выполнение поиска на них в режиме реального времени.

Настройка ETP/FTP в Everything

  • Сохранение поисковых запросов вместе с критериями поиска в закладки для последующего быстрого их вызова в любой момент.

Создание закладок в Everything

  • Наличие функции копирования и перемещения файлов с параллельным их переименованием в соответствии с заданным пользователем форматом.

Функции работы с файлами в Everything

  • Предварительный просмотр файлов.

Предварительный просмотр файлов в Everything

  • Наличие собственных поисковых функций (модификаторов и макросов), позволяющих искать объекты по различным критериям и с различными условиями. Полный список этих функций (а их несколько десятков) с пояснениями можно найти в онлайн-справке по программе Everything.

Команды Everything

И все перечисленное выше — далеко не полный список возможностей программы Everything.

Quick Search

Quick Search — еще одна поисковая программа для мгновенного поиска файлов и папок на всех подключенных к компьютеру дисках и переносных носителях. По функциональным возможностям она уступает Everything, но значительно превосходит Wise JetSearch. Как и в предыдущих случаях, программа Quick Search поддерживает русский язык.

Из функциональных возможностей программы отметим:

  • Поиск с использованием стандартных подстановочных знаков и просмотр содержимого файлов.

Quick Search

  • Быстрая (ввиду расположения соответствующих кнопок в главном окне) фильтрация результата поиска по различным типам/категориям файлов. Изначально категорий 6. Но их список можно расширить, привязав к новой созданной категории неограниченное количество расширений файлов.

Программа Quick Search

  • Возможность исключения из поиска системных и скрытых каталогов, а также создания собственного списка исключений, что позволит ускорить поиск.

Quick Search

  • Быстрый поиск установленных на компьютере приложений с возможностью их запуска прямо из окна программы Quick Search.

Поиск программ в Quick Search

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

Поиск в интернете в Quick Search

SearchMyFiles

SearchMyFiles — самая компактная программа для поиска файлов и папок, размер которой не превышает 300 Кб. При этом в приложении предусмотрены различные функции (условия) поиска, удобно расположенные в одном единственном окне, что упрощает работу с утилитой. Пользователь может задать такие условия поиска, как:

  • Режим поиска, включая поиск дубликатов файлов и поиск дублирующихся имен.
  • Папки, исключенные из поиска.
  • Отдельные маски для поиска папок и файлов с использованием подстановочных знаков.
  • Исключение из поиска файлов определенного типа.
  • Содержимое файлов. В этом плане SearchMyFiles имеет преимущества перед предыдущими программами, т.к. она может искать не только текст, но и заданный шестнадцатеричный (Hex) код. Также имеется возможность поиска нескольких значений с применением операторов «И» либо «ИЛИ».
  • Содержимое (текст или Hex-код), которое не должно присутствовать файлы.
  • Время создания, изменения и доступа. Помимо обычного формата времени, здесь можно задействовать, например, режим поиска файлов и папок, измененных/созданных с прошлой перезагрузки компьютера.
  • Размер файлов, уровень вложенности папок, атрибуты, количество найденных объектов и другие условия.

SearchMyFiles

Но есть у SearchMyFiles недостаток перед всеми предыдущими программами — относительно низкая скорость поиска. Связано это с тем, что данная утилита не индексирует папки и файлы, имеющиеся на компьютере, а постоянно осуществляет новый поиск, по отдельности сканируя заданное пользователем местоположение искомых объектов на диске.

Сами же результаты поиска программа отображает в отдельном окне. При этом пользователь может на ходу изменять условия поиска (даже если текущая операция не завершена). Список найденных объектов можно отсортировать и отфильтровать, а также задействовать те или иные параметры его отображения.

Программа SearchMyFiles

Есть и возможность выполнения над найденными файлами и папками некоторых простых действий (удаление, копирование, перемещение и т.д.).

Работа с файлами и папками в SearchMyFiles

LAN Search Pro

И последняя в нашем обзоре программа — LAN Search Pro. Сразу скажем, что она не предназначена для поиска файлов и папок на запоминающих устройствах компьютера. Ее основное предназначение — выполнение поиска в локальной сети.

Программа LAN Search Pro не может похвастаться наличием множества поисковых функций вроде создания условий поиска, но самое основное здесь есть. Пользователю предлагается поиск по названиям файлов и папок с возможностью замены букв/цифр/символов стандартными подстановочными знаками «*» и «?». При необходимости можно задать несколько масок имен, разделив их точкой с запятой.

LAN Search Pro

Также имеется возможность включения в настройках опции поиска по текстовому содержимому. Здесь же можно задействовать фильтры по дате создания и размеру искомых объектов.

Программа LAN Search Pro

Но главное, что в программе LAN Search Pro предусмотрен встроенный инструментарий по работе с сетевыми функциями операционной системы Windows. Пользователь может создать собственный список сетевых компьютеров, а затем выбрать один из режимов поиска на них (например, исключить некоторые ПК из поиска или задействовать поиск данных на компьютере с определенным IP-адресом).

Настройки LAN Search Pro

Отдельно предусмотрен функционал поиска общедоступных файлов на локальных FTP-серверах, созданных, как либо компьютере пользователя, либо и на компьютерах в сети.

Настройки FTP в LAN Search Pro

Среди вспомогательных функций:

  • Возможность подключения/отключения локальных сетевых дисков/папок (используется стандартный функционал Windows).

Подключение сетевой папки в LAN Search Pro

  • Сохранение паролей доступа к сетевым компьютерам при помощи встроенного менеджера паролей.

Сохранение сетевых паролей в LAN Search Pro

Экспорт с возможностью последующего импорта результатов поиска (таблицы) в файл CSV, XML, HTML или DAT (в данном случае это собственный формат хранения данных LAN Search Pro).

Остались вопросы, предложения или замечания? Свяжитесь с нами и задайте вопрос.

Задача №4. Файловая система, базы данных. Поиск информации в базе данных. Отбор файлов по маске.

Порядок, определяющий способ организации, хранения и именования данных на носителях информации в компьютерах называется файловой системой.

Файл (от английского папка) – это некоторая совокупность данных, хранимая и обрабатываемая, как единое целое.

Файл имеет имя и расширение. Расширение указывает на то, какой именно тип данных находится в файле (программа, текст, рисунок и т.д.). Расширение отделено от имени файла точкой (например, test.doc).

Примеры некоторых типов файлов:

Исполняемые файлы – расширение .exe, .com;

Текстовые файлы – расширения .txt, .doc;

Архивные файлы – расширения .rar, .zip;

Звуковые файлы – расширения .mp3, wav;

Файлы, содержащие изображения — .jpg, .gif, .bmp.

В ОС Windows и других операционных системах используется типовая древовидная структура файловой системы.

Корневой каталог обозначается буквой – именем логического диска. После буквы ставится двоеточие и обратный слэш: C:.

Полный путь к файлу состоит из имени корневого каталога и имен последовательно вложенных друг в друга каталогов, разделенных обратным слэшем. В конце пути находится сам файл: C:StudySubjectMathtext1.txt.

Для выделения, фильтрации группы файлов используют маску (шаблон) имени файла.

Для задания масок кроме обычных символов, допустимых в именах файлов, используют специальные символы:

«*» — заменяет любое количество (в том числе и нулевое) любых символов;

«?» — заменяет один и только один обязательно стоящий в указанном месте символ.

Например, по маске «*.*» будут отобраны вообще все файлы, по маске «*.txt» — файлы с расширением .txt, по маске «as?.doc» — файлы, с расширением .doc, имена которых начинаются на «as» и имеют обязательный непустой третий символ.

Если установлена сортировка по имени или типу, сравнение идет по кодам символов. При этом если задана сортировка, к примеру, по имени, то при наличии одинаковых имен сортировка будет применена к расширению.

Для хранения и анализа большого объема информации организовывают Базы Данных. Под Базой Данных понимают организованную в соответствии с некоторыми правилами, структурированную совокупность логически связанных данных. Эти данные предназначены для удобного совместного хранения и анализа.

Реляционная База Данных состоит из связанных между собой таблиц.

Перемещение по каталогам

Учитель работал в каталоге С:Учебный материал11 классКонтрольные работы.
Затем перешел в дереве каталогов на уровень выше, спустился в подкаталог Теоретический материал и удалил из него файл Введение. Каково полное имя файла, который удалил преподаватель?

1) С:Учебный материал11 классВведение.doc

2) С:Учебный материал11 классТеоретический материалВведение.doc

3) С:Учебный материалТеоретический материалВведение.doc

4) С:Учебный материалВведениеТеоретический материал.doc

Последовательно повторим действия учителя. После того, как он перешел в дереве каталогов на уровень выше, он оказался в каталоге С:Учебный материал11 класс, спустившись в подкаталог Теоретический материал, он оказался в каталоге С:Учебный материал11 классТеоретический материал. Именно там он и удалил файл Введение. Значит полное имя удаленного файла С:Учебный материал11 класс Теоретический материал Введение.doc.

Находясь в корневом каталоге только что отформатированного диска, ученик создал 3 каталога. Затем в каждом из них он создал еще по 4 каталога. Сколько всего каталогов оказалось на диске, включая корневой?

1) 12 2) 13 3) 15 4) 16

Обратим внимание на словосочетание «включая корневой». Значит, на диске существует корневой каталог, 3 вновь созданных каталога и в каждом из трех еще по 4: 1+3+3*4=16.

Отбор файла по маске

Для групповых операций с файлами используются маски имен файлов. Маска представляет собой последовательность букв, цифр и прочих допустимых в именах файлов символов, в которых также могут встречаться следующие символы: Символ «?» (вопросительный знак) означает ровно один произвольный символ. Символ «*» (звездочка) означает любую последовательность символов произвольной длины, в том числе «*» может задавать и пустую последовательность. Определите, какое из указанных имен файлов удовлетворяет маске: ?vi*r.?xt

1) vir.txt 2) ovir.txt 3) ovir.xt 4) virr.txt

Последовательно переберем все файлы: 1) не подходит, т.к. «?» в первой позиции маски означает обязательное наличие непустого символа перед буквой v, 2) полностью удовлетворяет условию маски, 3) не подходит, т.к. «?» после точки означает обязательное наличие непустого символа перед буквой x, 4) не подходит по той же причине, что и 1).

Для групповых операций с файлами используются маски имен файлов. Маска представляет собой последовательность букв, цифр и прочих допустимых в именах файлов символов, в которых также могут встречаться следующие символы: Символ «?» (вопросительный знак) означает ровно один произвольный символ. Символ «*» (звездочка) означает любую последовательность символов произвольной длины, в том числе «*» может задавать и пустую последовательность. Определите, какое из указанных имен файлов не удовлетворяет маске: sys. *

1) syste.m 2) sys23.exe 3) system.dll 4) syszx.problem

По условиям маски файл должен иметь любое расширение, а имя файла должно начинаться на sys и оканчиваться ровно двумя непустыми символами. Этому условию не удовлетворяет только файл 3). Он содержит в имени не два, а три символа после sys.

Поиск маски по набору файлов

Для груп­по­вых опе­ра­ций с фай­ла­ми ис­поль­зу­ют­ся маски имён фай­лов. Маска пред­став­ля­ет собой по­сле­до­ва­тель­ность букв, цифр и про­чих до­пу­сти­мых в име­нах фай­лов сим­во­лов, в ко­то­рых также могут встре­чать­ся сле­ду­ю­щие сим­во­лы:

Сим­вол «?» (во­про­си­тель­ный знак) озна­ча­ет ровно один про­из­воль­ный сим­вол.

Сим­вол «*» (звез­доч­ка) озна­ча­ет любую по­сле­до­ва­тель­ность сим­во­лов про­из­воль­ной длины, в том числе «*» может за­да­вать и пу­стую по­сле­до­ва­тель­ность.

Опре­де­ли­те, по какой из масок может быть вы­бра­на ука­зан­ная груп­па фай­лов:

Последовательно применим каждую маску к набору файлов:

Маска 1) требует, чтобы имя состояло ровно из 4-х символов, под эти требования не подходят файлы comfort.c и cobalt.cpp.

Маска 2) требует только, чтобы имя и расширение файла начинались на c. Под эти требования подходят все файлы.

Маска 3) требует, чтобы расширение содержало 3 символа, под эти требования не подходят файлы comfort.c и coat.c.

Маска 4) тоже требует, чтобы расширение содержало 3 символа. Аналогично предыдущему случаю не подходят файлы comfort.c и coat.c.

Базы данных. Анализ одной таблицы.

На го­род­ской тур олим­пи­а­ды по ма­те­ма­ти­ке от­би­ра­ют­ся те уча­щи­е­ся, кто на­брал на рай­он­ном туре не менее 10 бал­лов или пол­но­стью решил хотя бы одну из двух самых слож­ных задач (№ 6 или № 7). За пол­ное ре­ше­ние задач 1– 4 даётся 2 балла; задач 5, 6 – 3 балла; за­да­чи 7 – 4 балла. Дан фраг­мент таб­ли­цы ре­зуль­та­тов рай­он­но­го тура.

Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 23 января 2020 года; проверки требуют 7 правок.

find — утилита поиска файлов по имени и другим свойствам, используемая в UNIX‐подобных операционных системах. Может производить поиск в одном или нескольких каталогах с использованием критериев, заданных пользователем. По умолчанию find возвращает все файлы в рабочем каталоге. Более того, find позволяет применять пользователю определённые действия ко всем найденным файлам. Также поддерживаются регулярные выражения. Для поиска файлов по содержимому следует пользоваться утилитой grep.

Список ключей[править | править код]

  • -amin — время последнего обращения к файлу (в минутах).
  • -atime — время последнего обращения к файлу (в днях).
  • -cmin — время последнего изменения владельца или прав доступа к файлу (в минутах).
  • -ctime — время последнего изменения владельца или прав доступа к файлу (в днях).
  • -delete — удалять найденные файлы.
  • -depth или -d — начинать поиск с самых глубоких уровней вложенности, а не с корня каталога.
  • -empty — только пустые каталоги.
  • -exec command {} ; — выполняет над найденным файлом указанную команду; обратите внимание на синтаксис.
  • -group — владелец: группа пользователя или GID.
  • -L — разворачивать символические ссылки.
  • -ls — генерирует вывод как команда ls -dgils.
  • -maxdepth — максимальный уровень вложенности для поиска. «-maxdepth 1» ограничивает поиск текущим каталогом.
  • -mmin — время последнего изменения файла (в минутах).
  • -mount или -xdev — не переходить на другие файловые системы.
  • -mtime — время последнего изменения файла (в днях).
  • -name — искать по маске имени файла. Опция -name регистрочувствительная, то есть различает прописные и строчные буквы. Для поиска файлов без учета регистров воспользуйтесь опцией -iname.
  • -newer другой_файл — искать файлы, созданные позже, чем другой_файл.
  • -ok — перед выполнением команды, указанной в -exec, выдаёт запрос.
  • -P — не разворачивать символические ссылки (поведение по умолчанию).
  • -perm — указываются права доступа.
  • -print0 — выводит путь к текущему файлу на стандартный вывод, за которым следует символ ASCII NULL (код символа 0).
  • -print — показывает на экране найденные файлы.
  • -prune — используется, когда вы хотите исключить из поиска определённые каталоги.
  • -regex — искать по имени файла, используя регулярные выражения.
  • -regextype тип — указание типа используемых регулярных выражений.
  • -size — размер: указывается в 512-байтных блоках или байтах (признак байтов — символ «c» за числом).
  • -type — тип искомого: f=файл, d=каталог (directory), l=ссылка (link), p=канал (pipe), s=сокет.
  • -user — владелец: имя пользователя или UID.

Примеры[править | править код]

Поиск в текущем каталоге[править | править код]

Найти все файлы в текущем и дочерних каталогах, название которых начинается с my.

Обратите внимание: в понятиях unix файлом является все в том числе и каталоги.

Для поиска исключительно по именам файлов нужно использовать дополнительную опцию -type f 

find . -name 'my*' -type f

Поиск в определенном каталоге[править | править код]

Найти все файлы в корневом и дочерних каталогах, название которых начинается с my.

Поиск в корневом каталоге эквивалентен поиску по всему компьютеру.

Поиск файлов в каталогах /usr/local/man и /opt/local/man

find /usr/local/man /opt/local/man -name 'my*'

Поиск по нескольким именам файлов[править | править код]

Найти все файлы в текущем и дочерних каталогах, название которых начинается с my или qu.

Обратите внимание, что по умолчанию все аргументы соединены с помощью логического и (опция -a, от англ. and). Если необходимо объединить несколько аргументов логическим или — используйте опцию -o, от англ. or.

find . ( -name "my*" -o -name "qu*" ) -print

Поиск нескольких типов файлов, используя регулярные выражения[править | править код]

Найти все файлы в текущем и дочерних каталогах, расширение которых совпадает с перечисленными.

Данный поиск осуществляется с помощью регулярных выражений.

find . -type f -regex ".*.(jpg|jpeg|gif|png|JPG|JPEG|GIF|PNG)"

Предыдущий пример можно также записать с помощью регулярных выражений

find . -type f -regex "(my|qu).*"

Выполнение команды[править | править код]

Опция -exec выполняет следующую за ней команду и подставляет вместо {} текущий файл. Найти все каталоги ниже указанного каталога и изменить им права доступа с помощью команды chmod:

find /path -type d -exec chmod 0755 {} ;

Опция -exec работает примерно в 10 раз медленнее, чем перенаправление вывода через xargs, поэтому данный код рекомендуется писать следующим образом:

find /path -type d | xargs chmod 0755

Однако каталоги с именами, содержащими пробелы, методом перенаправления через xargs обработаны не будут, поэтому следует использовать первый вариант, дополненный:

find /path -type d -exec chmod 0755 "{}" ;

Или воспользоватся опцией -print0 и -0 позволяет обрабатывать аргументы, содержащие пробелы и кавычки:

find /path -type d -print0 | xargs -0 chmod 0755

Поиск всех файлов php.ini в текущем каталоге и замена текста в каждом найденном файле с помощью команды sed.

find . -name 'php.ini' -exec sed -i 's/log_errors = Off/log_errors = On/g' "{}" ;

Сложный поиск в нескольких видах файлов и замен текста в каждом из них, от текущего каталога и ниже.

find . -regex ".*.(php|js|css)" -exec sed -i 's//bitrix/templates///local/templates//g' "{}" ;

Поиск в зависимости от времени создания[править | править код]

Найти и вывести список файлов во всей файловой системе, изменённых в течение последней минуты:

Найти и вывести список файлов во всей файловой системе, которые были изменены более 31 дня назад:

Поиск по размеру файла[править | править код]

Найти и вывести список файлов во всей файловой системе, чей размер больше 100 Мб:

find / -size +100M -print

Поиск файлов, принадлежащих определенному пользователю[править | править код]

В данном примере поиск осуществляется по файлам принадлежащим пользователю с именем ilya

Поиск файлов c ограничением глубины[править | править код]

Глубина поиска указывается относительно каталога, указанного в аргументе команды.

Начинает поиск в папке /var/www, но не глубже /var/www/*/*/*/* .

find /var/www -maxdepth 4 -name 'restore.php'

Поиск файлов с перечислением каталогов.[править | править код]

Ищет файлы в указанных каталогах.

find /var/spool/postfix/{deferred,active,maildrop,incoming}/ -type f

Поиск файлов по маске с исключением.[править | править код]

Ищет файлы php в текущем каталоге, исключая index.php

find . -name "*.php" ! -name "index.php"

Рекурсивное удаление файла от текущего каталога, на заданную глубину.[править | править код]

Удаляет все файлы restore.php от текущего каталога, но не глубже 4 уровня вложенности относительно аргумента в командной строке

Начинает поиск в папке /var/www, но не глубже /var/www/*/*/*/* и удаляет все файлы restore.php в найденном.

find /var/www -maxdepth 4 -name 'restore.php' -exec rm -r {} ;

Игнорирование ошибок[править | править код]

Если при поиске возникает ошибка (например — нет доступа чтения из каталога) то вывод команды становится менее информативным. Перенаправьте вывод STDERR в /dev/null.

find / -name 'secret.keys' -print 2>/dev/null

Также можно использовать один из следующих вариантов:

find / -name  "имя искомого файла" |& grep -v 'Отказано в доступе'
find / -name  "имя искомого файла" |& grep -v 'Permission denied'

Ссылки[править | править код]

  • find(1) — страница справки man по пользовательским командам GNU/Linux  (англ.)  (англ.)
  • «Как выловить битые ссылки»  (недоступная ссылка) — с помощью find’а найти все битые ссылки.  (рус.)
  • Поиск файлов в Linux — разнообразные примеры использования команды find (рус.)

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

Кроме того, с найденными файлами можно сразу же выполнять необходимые действия. В этой статье мы поговорим о поиске с помощью очень мощной команды find Linux, подробно разберем её синтаксис, опции и рассмотрим несколько примеров.

Команда find – это одна из наиболее важных и часто используемых утилит системы Linux. Это команда для поиска файлов и каталогов на основе специальных условий. Ее можно использовать в различных обстоятельствах, например, для поиска файлов по разрешениям, владельцам, группам, типу, размеру и другим подобным критериям.

Утилита find предустановлена по умолчанию во всех Linux дистрибутивах, поэтому вам не нужно будет устанавливать никаких дополнительных пакетов. Это очень важная находка для тех, кто хочет использовать командную строку наиболее эффективно.

Команда find имеет такой синтаксис:

find [папка] [параметры] критерий шаблон [действие]

Папка – каталог в котором будем искать

Параметры – дополнительные параметры, например, глубина поиска, и т д

Критерий – по какому критерию будем искать: имя, дата создания, права, владелец и т д.

Шаблон – непосредственно значение по которому будем отбирать файлы.

Основные параметры команды find

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

  • -P – никогда не открывать символические ссылки.
  • -L – получает информацию о файлах по символическим ссылкам. Важно для дальнейшей обработки, чтобы обрабатывалась не ссылка, а сам файл.
  • -maxdepth – максимальная глубина поиска по подкаталогам, для поиска только в текущем каталоге установите 1.
  • -depth – искать сначала в текущем каталоге, а потом в подкаталогах.
  • -mount искать файлы только в этой файловой системе.
  • -version – показать версию утилиты find.
  • -print – выводить полные имена файлов.
  • -type f – искать только файлы.
  • -type d – поиск папки в Linux.

Критерии

Критериев у команды find в Linux очень много, и мы опять же рассмотрим только основные.

  • -name – поиск файлов по имени.
  • -perm – поиск файлов в Linux по режиму доступа.
  • -user – поиск файлов по владельцу.
  • -group – поиск по группе.
  • -mtime – поиск по времени модификации файла.
  • -atime – поиск файлов по дате последнего чтения.
  • -nogroup – поиск файлов, не принадлежащих ни одной группе.
  • -nouser – поиск файлов без владельцев.
  • -newer – найти файлы новее чем указанный.
  • -size – поиск файлов в Linux по их размеру.

Примеры использования

А теперь давайте рассмотрим примеры find, чтобы вы лучше поняли, как использовать эту утилиту.

1. Поиск всех файлов

Показать все файлы в текущей директории:

find

find .

find . -print

Все три команды покажут одинаковый результат. Точка здесь означает текущую папку. В место неё можно указать любую другую.

2. Поиск файлов в определенной папке

Показать все файлы в указанной директории:

find ./Изображения

Искать файлы по имени в текущей папке:

find . -name "*.png

Поиск по имени в текущей папке:

find . -name "testfile*"

Не учитывать регистр при поиске по имени:

find . -iname "TeStFile*"

3. Ограничение глубины поиска

Поиска файлов по имени в Linux только в этой папке:

find . -maxdepth 1 -name "*.php"

4. Инвертирование шаблона

Найти файлы, которые не соответствуют шаблону:

find . -not -name "test*"

5. Несколько критериев

Поиск командой find в Linux по нескольким критериям, с оператором исключения:

find . -name "test" -not -name "*.php"

Найдет все файлы, начинающиеся на test, но без расширения php. А теперь рассмотрим оператор ИЛИ:

find -name "*.html" -o -name "*.php"

Эта команда найдёт как php, так и html файлы.

6. Тип файла

По умолчанию find ищет как каталоги, так и файлы. Если вам необходимо найти только каталоги используйте критерий type с параметром d. Например:

find . -type d -name "Загрузки"

Для поиска только файлов необходимо использовать параметр f:

find . -type f -name "Загрузки"

6. Несколько каталогов

Искать в двух каталогах одновременно:

find ./test ./test2 -type f -name "*.c"

7. Поиск скрытых файлов

Найти скрытые файлы только в текущей папке. Имена скрытых файлов в Linux начинаются с точки:

find . -maxdepth 1 -type f -name ".*"

8. Поиск по разрешениям

Найти файлы с определенной маской прав, например, 0664:

find . -type f -perm 0664

Права также можно задавать буквами для u (user) g (group) и o (other). Например, для того чтобы найти все файлы с установленным флагом Suid в каталоге /usr выполните:

sudo find /usr -type f -perm /u=s

Поиск файлов доступных владельцу только для чтения только в каталоге /etc:

find /etc -maxdepth 1 -perm /u=r

Найти только исполняемые файлы:

find /bin -maxdepth 2 -perm /a=x

9. Поиск файлов в группах и пользователях

Найти все файлы, принадлежащие пользователю:

find . -user sergiy

Поиск файлов в Linux принадлежащих группе:

find /var/www -group www-data

10. Поиск по дате модификации

Поиск файлов по дате в Linux осуществляется с помощью параметра mtime. Найти все файлы модифицированные 50 дней назад:

find / -mtime 50

Поиск файлов в Linux открытых N дней назад:

find / -atime 50

Найти все файлы, модифицированные между 50 и 100 дней назад:

find / -mtime +50 -mtime -100

Найти файлы измененные в течении часа:

find . -cmin 60

11. Поиск файлов по размеру

Найти все файлы размером 50 мегабайт:

find / -size 50M

От пятидесяти до ста мегабайт:

find / -size +50M -size -100M

Найти самые маленькие файлы:

find . -type f -exec ls -s {} ; | sort -n -r | head -5

Самые большие:

find . -type f -exec ls -s {} ; | sort -n | head -5

12. Поиск пустых файлов и папок

find /tmp -type f -empty

find ~/ -type d -empty

13. Действия с найденными файлами

Для выполнения произвольных команд для найденных файлов используется опция -exec. Например, для того чтобы найти все пустые папки и файлы, а затем выполнить ls для получения подробной информации о каждом файле используйте:

find . -empty -exec ls -ld {} ;

Удалить все текстовые файлы в tmp

find /tmp -type f -name "*.txt" -exec rm -f {} ;

Удалить все файлы больше 100 мегабайт:

find /home/bob/dir -type f -name *.log -size +100M -exec rm -f {} ;

Выводы

Вот и подошла к концу эта небольшая статья, в которой была рассмотрена команда find. Как видите, это одна из наиболее важных команд терминала Linux, позволяющая очень легко получить список нужных файлов. Ее желательно знать всем системным администраторам. Если вам нужно искать именно по содержимому файлов, то лучше использовать команду grep.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

&НаСервере
Процедура ЧтениеИЗаписьФайловНаСервере()
 
    /// Как записать произвольное значение в файл в 1с 8.3, 8.2
 
    // любое сериализуемое (то есть превращаемое 
    // в строку и обратно) значение можно сохранять
    // в файл, например, массивы, списки значений, строки
    // структуры и т.д.
    Числа = Новый Массив;
    Числа.Добавить(35);
    Числа.Добавить(67);
    ЗначениеВФайл("c:числа.txt", Числа);
    // эта функция работает только на сервере
 
    /// Как восстановить произвольное значение из файла в 1с 8.3, 8.2    
 
    ЧислаИзФайла = ЗначениеИзФайла("c:числа.txt");
    Сообщить(ЧислаИзФайла[0]); // 35
    Сообщить(ЧислаИзФайла[1]); // 67
 
    /// Как записать текстовый файл в 1с 8.3, 8.2
 
    // работает как на сервере, так и на клиенте
    Текст = Новый ЗаписьТекста(
        "c:привет.txt", // имя
        КодировкаТекста.ANSI, // кодировка
        Символы.ПС, // разделитель строк (необ.)
        Ложь // перезаписывать файл, а не дописывать в конец (необ.)
    );    
    Текст.ЗаписатьСтроку("Добро пожаловать!");
    Текст.ЗаписатьСтроку("Посторонним вход воспрещен.");
    Текст.Закрыть();
 
    /// Как прочитать текстовый файл в 1с 8.3, 8.2
 
    // работает как на сервере, так и на клиенте
    Текст = Новый ЧтениеТекста(
        "c:привет.txt", // имя
        КодировкаТекста.ANSI, // кодировка
        Символы.ПС, // разделитель строк (необ.)
        ,
        Истина // монопольный режим (необ.)
    );
 
    // читаем пока есть что читать
    Пока Истина Цикл
        Строка = Текст.ПрочитатьСтроку();
        Если Строка = Неопределено Тогда
            Прервать;
        Иначе
            Сообщить(Строка);
        КонецЕсли;
    КонецЦикла;
 
КонецПроцедуры
 
&НаКлиенте
Процедура ОперацииНадФайлами(Команда)
 
    // для тестов создадим пустой файл
 
    Текст = Новый ЗаписьТекста("c:file_src.txt");
    Текст.Закрыть();
 
    /// Как проверить существование файла в 1С 8.3, 8.2    
 
    ФайлНаДиске = Новый Файл("c:file_src.txt");
    Если ФайлНаДиске.Существует() Тогда
        Сообщить("c:file_src.txt существует");
    КонецЕсли;
 
    /// Как скопировать файл в 1с 8.3, 8.2 
 
    КопироватьФайл(
        "c:file_src.txt", // что копируем
        "c:file_dest.txt" // куда копируем
    ); // перезапишет, если уже есть такой файл
 
    /// Как переместить файл в 1с 8.3, 8.2 
 
    ПереместитьФайл(
        "c:file_dest.txt",
        "c:file_new.txt"
    ); // перезапишет, если уже есть такой файл
 
    /// Как найти файлы в каталоге в 1с 8.3, 8.2 
 
    // возвращает массив значений типа Файл
    МассивНайденныхФайлов = НайтиФайлы(
        "c:", // где искать
        "*.txt", // маска поиска
        Ложь // если Истина, то будет искать и в подкаталогах
    );
 
    Для Каждого Файл Из МассивНайденныхФайлов Цикл
        Сообщить("Найден " + Файл.ПолноеИмя);
    КонецЦикла;
 
    /// Как удалить файл в 1с 8.3, 8.2
 
    // если файл readonly - будет ошибка
    УдалитьФайлы(
        "c:file_new.txt"
    );
 
    /// Как удалить файлы в каталоге по маске в 1с 8.3, 8.2
 
    // поиск в каталоге нерекурсивный
    УдалитьФайлы(
        "c:helpme1c", // заведомо не существующий каталог
        "*.txt" // маска для поиска удаляемых файлов
    ); // если опустить маску, то удалятся все файлы и каталог
 
    /// Как получить имя временного файла в 1с 8.3, 8.2
 
    Сообщить(
        ПолучитьИмяВременногоФайла()
    ); // например, c:Tempv8_11AE_4.tmp
 
    Сообщить(
        ПолучитьИмяВременногоФайла(".txt")
    ); // например, c:Tempv8_11AE_5.txt
 
    /// Как прочитать атрибуты файла в 1с 8.3, 8.2
 
    Ф = Новый Файл("c:file_src.txt");
 
    // время последнего изменения файла
    Сообщить(Ф.ПолучитьВремяИзменения());
 
    // проверяем атрибут только чтение
    Сообщить(Ф.ПолучитьТолькоЧтение());
 
    // проверяем атрибут hidden (скрытность, невидимость)
    Сообщить(Ф.ПолучитьНевидимость());
 
    /// Как установить атрибуты файла в 1с 8.3, 8.2
 
    // меняем время последнего изменения файла
    Ф.УстановитьВремяИзменения(ТекущаяДата());
 
    // меняем атрибут только чтение
    Ф.УстановитьТолькоЧтение(Ложь);
 
    // меняем атрибут невидимости
    Ф.УстановитьНевидимость(Ложь);
 
    /// Как узнать размер файла в 1с 8.3, 8.2
 
    Сообщить(Ф.Размер()); // в байтах
 
    // Как узнать по пути файл это или каталог в 1с 8.3, 8.2
    Если Ф.ЭтоКаталог() Тогда
        Сообщить("Это каталог");
    ИначеЕсли Ф.ЭтоФайл() Тогда
        Сообщить("Это файл");
    КонецЕсли;
 
    /// Как вытащить расширение файла из его пути в 1с 8.3, 8.2
 
    Сообщить(Ф.Расширение); // .txt
 
    /// Как вытащить имя файла без расширения в 1с 8.3, 8.2
 
    Сообщить(Ф.ИмяБезРасширения); // file_src
 
КонецПроцедуры
 
&НаКлиенте
Процедура ОперацииНадКаталогами(Команда)
 
    /// Как создать каталог в 1с 8.3, 8.2
 
    // каталог может уже существовать
    СоздатьКаталог("c:new_dir");
 
    // создадутся все подкаталоги
    СоздатьКаталог("c:new_dir23");
 
    /// Как проверить существование каталога в 1с 8.3, 8.2
 
    КаталогНаДиске = Новый Файл("c:new_dir");
    Если КаталогНаДиске.Существует() Тогда
        Сообщить("Папка c:new_dir существует");
    КонецЕсли;    
 
    /// Как удалить каталог вместе с содержимым в 1с 8.3, 8.2
 
    УдалитьФайлы("c:new_dir");
    // мы опустили маску, поэтому удалятся все файлы
    // внутри каталога, а также сам каталог
 
    /// Как получить каталог временных файлов в 1с 8.3, 8.2
 
    Сообщить(
        КаталогВременныхФайлов()
    ); // например, c:temp
 
КонецПроцедуры
 
&НаКлиенте
Процедура РаботаСВременнымХранилищем(Команда)
 
    // временное хранилище - объект, в который мы можем помещать
    // и считывать данные произвольного типа,
    // доступ к которому есть и на сервере и на клиенте
    // это позволяет передавать между сервером и клиентом
    // данные, которые иначе не передать
 
    /// Как сохранить произвольное значение во временное
    /// хранилище в 1с 8.3, 8.2
 
    Список = Новый СписокЗначений;
    Список.Добавить("Владивосток");
    Список.Добавить("Хабаровск");
    Список.Добавить("Петропавловск-Камчатский");
 
    АдресВХранилище = ПоместитьВоВременноеХранилище(
        Список // произвольные данные        
    );
 
    /// Как прочитать произвольное значение из временного
    /// хранилища в 1с 8.3, 8.2
 
    СписокИзХранилища = ПолучитьИзВременногоХранилища(АдресВХранилище);
    Если СписокИзХранилища = Неопределено Тогда
        Сообщить("Значение по этому адресу уже удалено из хранилища.");
    Иначе
        Сообщить(СписокИзХранилища[0]); // Владивосток
    КонецЕсли;
 
    /// Как перезаписать уже сохраненное значение во временном
    /// хранилище в 1с 8.3, 8.2
 
    Массив = Новый Массив;
    Массив.Добавить(10);
    Массив.Добавить(20);
 
    ПоместитьВоВременноеХранилище(
        Массив,
        АдресВХранилище
    );
 
    /// Сколько времени хранится значение, сохраненное во
    /// временном хранилище в 1с 8.3, 8.2
 
    // всё зависит от второго параметра функции ПоместитьВоВременноеХранилище
 
    // #1 если туда в качестве адреса был передан уникальный идентификатор формы
    // или уже существующий адрес в хранилище, то значение будет автоматически
    // удалено после закрытия формы
 
    // #2 если туда в качестве адреса передан уникальный идентификатор, не
    // являющийся уникальным идентификатором формы, то значение будет
    // автоматически удалено только после завершения сеанса пользвоателя    
 
    // #3 если адрес не указан, помещенное значение будет удалено после
    // очередного запроса сервера    
 
    // см. примеры ниже
 
    /// Как сохранить значение во временное хранилище на всё
    /// время жизни формы в 1с 8.3, 8.2
 
    ПоместитьВоВременноеХранилище(
        Массив,
        ЭтаФорма.УникальныйИдентификатор
    );
 
    /// Как сохранить значение во временное хранилище на всё
    /// время сеанса пользователя в 1с 8.3, 8.2
 
    АдресВХранилище = ПоместитьВоВременноеХранилище(
        Массив,
        Новый УникальныйИдентификатор
    );
 
    /// Как удалить значение из временного хранилища в 1с 8.3, 8.2
 
    УдалитьИзВременногоХранилища(АдресВХранилище);
 
    /// Как узнать является ли строка адресом во временном хранилище
    /// в 1с 8.3, 8.2
 
    Если ЭтоАдресВременногоХранилища(АдресВХранилище) Тогда
        Сообщить("Да, это адрес во временном хранилище.");
    КонецЕсли;
 
КонецПроцедуры
 
/// Как передать файл с клиента на сервер в 1с 8.3, 8.2
 
&НаКлиенте
Процедура ПередачаФайлаСКлиентаНаСервер(Команда)
 
    // создадим тестовый файл для передачи
    Текст = Новый ЗаписьТекста("c:test.txt");
    Текст.ЗаписатьСтроку("Привет,");
    Текст.ЗаписатьСтроку("Мир!");
    Текст.Закрыть();
 
    ОповещениеОЗавершении = Новый ОписаниеОповещения(
        "ВыполнитьПослеПомещенияФайла", ЭтотОбъект
    );    
 
    НачатьПомещениеФайла(
        ОповещениеОЗавершении,
        , // адрес в хранилище
        "c:test.txt", // имя файла
        Ложь, // интерактивно
        ЭтаФорма.УникальныйИдентификатор
    );
    // если опустить последний параметр, то помещенный файл
    // будет удален после очередного запроса сервера
    // а если указать - то только после удаления объекта формы
 
    // если нужно предоставить пользователю возможность
    // выбрать файл самому четвёртый параметр (интерактивно)
    // нужно установить в Истина
 
КонецПроцедуры
 
&НаКлиенте
Процедура ВыполнитьПослеПомещенияФайла(Результат, Адрес,
    ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт
 
    Если Результат Тогда
 
        // сохраним полученный адрес в реквизит формы
        АдресФайлаВХранилище = Адрес;
 
        Сообщить(
            "Наконец-то! Файл " +
            ВыбранноеИмяФайла + " передан на сервер и сохранён во " +
            "временном хранилище по адресу " + Адрес);
 
    Иначе
 
        Сообщить("Не удалось передать файл на сервер.");
 
    КонецЕсли;
 
КонецПроцедуры
 
/// Как прочитать файл на сервере из временного хранилища
/// в 1с 8.3, 8.2
 
&НаСервере
Процедура ПрочитатьФайлНаСервереИзХранилищаНаСервере()
 
    Если АдресФайлаВХранилище = "" Тогда
        Сообщить("Сначала нужно передать файл с клиента на сервер.");
        Возврат;
    КонецЕсли;
 
    ДвоичныеДанные = 
        ПолучитьИзВременногоХранилища(АдресФайлаВХранилище);
 
    Если ДвоичныеДанные = Неопределено Тогда
        Сообщить("Похоже файл уже был удалён из хранилища.");
        Возврат;
    КонецЕсли;
 
    ДвоичныеДанные.Записать("c:server.txt");
 
    Текст = Новый ЧтениеТекста("c:server.txt");
    Пока Истина Цикл
        Строка = Текст.ПрочитатьСтроку();
        Если Строка = Неопределено Тогда
            Прервать;
        Иначе
            Сообщить(Строка);
        КонецЕсли;
    КонецЦикла;
 
КонецПроцедуры
 
/// Как передать файл с сервера на клиент в 1с 8.3, 8.2
 
&НаКлиенте
Процедура ПередатьФайлССервераНаКлиент(Команда)
 
    Если АдресФайлаВХранилище = "" Тогда
        Сообщить("Сначала нужно сохранить файл на сервере.");
        Сообщить("Воспользуйтесь кнопкой 'Передача файла с клиента...'");
        Возврат;
    КонецЕсли;
 
    ОповещениеОЗавершении = Новый ОписаниеОповещения(
        "ВыполнитьПослеПолученияФайлов", ЭтотОбъект
    );
 
    ПолучаемыеФайлы = Новый Массив;
    ПолучаемыеФайлы.Добавить(
        Новый ОписаниеПередаваемогоФайла(
            "c:from_server.txt", // куда сохранять на клиента
            АдресФайлаВХранилище // адрес в хранилище на сервере
        )
    );
 
    НачатьПолучениеФайлов(
        ОповещениеОЗавершении,
        ПолучаемыеФайлы,
        ,
        Ложь // интерактивно
    );
 
КонецПроцедуры
 
&НаКлиенте
Процедура ВыполнитьПослеПолученияФайлов(ПолученныеФайлы,
    ДополнительныеПараметры) Экспорт
 
    Для Каждого Файл Из ПолученныеФайлы Цикл
        Сообщить("Получен " + Файл.Имя + " из " + Файл.Хранение);
    КонецЦикла;
 
КонецПроцедуры
 
/// Скачать и выполнить эти примеры на компьютере

Добавить комментарий