Мониторинг обменных курсов валют
18c0693f

В Имеет ли операционная система



В. Имеет ли операционная система Windows средства, упрощающие операции над группами файлов и каталогами?

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

SH STRUCT hwnd DWORD ? wFunc DWORD ? pFrom DWORD ? pTo DWORD ? fFlags DWORD ? fAnyOperationsAborted DWORD ? hNameMappings DWORD ? lpszProgressTitle DWORD ? SH ENDS

Рассмотрим значение этих полей.

  • hwnd - дескриптор окна, куда будет выводиться статус операции.
  • wFunc - код операции. Может принимать следующие значения: FO_COPY, FO_DELETE, FO_MOVE, FO_RENAME. Смысл этих значений, я думаю, Вам понятен.
  • pFrom - название файла, каталога или группы файлов или каталогов, над которыми будет производиться операция. Если несколько объектов, то имена отделяются символами с кодом 0. Можно выделять списки, которые отделяются друг от друга двумя нулевыми символами.
  • pTo - имя или группа имен - результат операции, например копирование.
  • fFlags - флаг, определяет характер операции. Может являться комбинацией следующих констант:
  • FOF_ALLOWUNDO - сохранить, если возможно, информацию для возвращения в исходное состояние.
  • FOF_CONFIRMMOUSE - данное значение не реализовано.
  • FOF_FILESONLY - выполнять только над файлами, если определен шаблон.
  • FOF_MULTIDESTFILES - указывает, что pTo содержит несколько результирующих файлов или каталогов. Например, можно копировать сразу в несколько каталогов. Если pFrom состоит из нескольких файлов, то каждый файл будет копироваться в свой каталог.
  • FOF_NOCONFIRMATION - отвечать утвердительно на все запросы.
  • FOF_NOCONFIRMMKDIR- не подтверждать создание каталога, если это требуется.
  • FOF_RENAMEONCOLLISION - давать файлам новые имена, если файлы с такими именами уже существуют.
  • FOF_SILENT - не показывать окно-статус.
  • FOF_SIMPLEPROGRESS - показывать окно-статус, но не показывать имена файлов.
  • FOF_WANTMAPPINGHANDLE - заполнять отображаемый файл (см. ниже).
  • fAnyOperationsAborted - переменная, по которой после операции можно определить, была ли прервана операция (<>0) или нет (0).
  • hNameMappings - дескриптор отображаемого в памяти файла, содержащего массив, состоящий из новых и старых имен файлов, участвующих в операции.
  • lpszProgressTitle - указывает на строку-заголовок для диалогового окна-статуса.
  • Кроме описанной функции, есть еще целая группа функций, начинающихся на SH. Среди них особенно полезна функция SHGetDesktopFolder, осуществляющая вывод диалогового окна для выбора нужной папки каталога.






    Самый выгодный курс обмена валюты