Постигая сущность библиотек

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

Что дают библиотеки в Windows 7 пользователям?

Чтобы лучше понять концепцию библиотек в Windows 7, необходимо заглянуть в историю – что было до Windows 7. Ранние версии Windows, такие как Windows Vista и XP, имели комплекты специальных папок, в которых пользователи хранили свою информацию, например, «Мои документы» или «Мои рисунки». В Windows Vista эти специальные папки автоматически индексировались, чтобы сделать поиск внутри них максимально эффективным для конечного пользователя. Несмотря на очевидные удобства такого подхода, многие, и я в том числе, разбрасывают свои файлы по всему компьютеру в различных местах, например, c:\temp, d:\Birthday2008\pictures, а то и вообще помещают их на удалённый носитель. Это затрудняет индексирование и вообще отрицательно сказывается на результатах поисковых запросов, частенько устраивая пользователю настоящие приключения с розыском нужных данных.

Windows 7 с помощью библиотек помогает решить проблемы с неупорядоченными данными, предоставляя пользователю полный контроль над структурой папок. Это означает, что в Windows 7 можно заранее определить, какие папки вносить в структуру библиотек документов. Это относится к любой библиотеке. Таким образом, можно утверждать, что библиотеки – это набор папок, определённых пользователем. Включая папки в библиотеки, пользователи сообщают системе, где расположены важные данные. Система индексирует указанные папки, делая возможным быстрый поиск и упорядочивание на основе свойств файлов.

Пользователи Windows 7 применяют библиотеки для управления своими документами, музыкой, изображениями и другим контентом. Как видно в Windows Explorer и общем файловом диалоге, библиотеки – неотъемлемая часть оболочки Windows. Эта интеграция очень важна, поскольку обеспечивает возможность просмотра и организации файлов совершенно так же, как и в самой обыкновенной папке, что не требует переучивания. Щелкнув по библиотеке, пользователь получает доступ к своим документам. Больше того, благодаря интеграции в оболочку, можно осуществлять поиск, фильтруя результаты по дате, типу или автору, как в Windows Explorer, так и в общем файловом диалоге. Другими словами, пользуясь библиотеками, пользователи получают в своё распоряжение гибкое индексируемое хранилище. Рисунок ниже демонстрирует интеграцию нескольких папок в единую библиотеку, богатые возможности поиска и основные элементы Windows Explorer в Windows 7.

Win7_libraries

Что же такое библиотека?

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

По умолчанию в Windows 7 есть одна главная библиотека, называемая Libraries, содержащая четыре библиотеки второго уровня – документы, музыка, изображения и видео. Пользователи могут сохранять файлы прямо в соответствующую библиотеку, и хотя библиотеки не являются папками файловой системы в привычном смысле, они всё же имеют соотнесённое пространство в файловой системе, где находятся файлы. Каждая библиотека содержит два физических адреса: личная папка пользователя (по умолчанию известная папка, включённая в библиотеку, например, папка «Мои Документы» в библиотеке документов), и папка для общего доступа. Для самостоятельно выбранных категорий таким местом сохранения будет первая добавленная папка. Пользователи могут поменять предустановленное место хранения для любой из библиотек в любое время. Но при удалении установленного по умолчанию места хранения система выбирает в качестве такового следующую папку библиотеки. Кроме всего прочего, пользователи могут сохранять файлы в любую из папок внутри библиотеки, если у них имеются соответствующие права.

Чтобы папка была успешно добавлена в библиотеку, необходимо, чтобы её можно было индексировать локально, на удалённом компьютере с Windows или на сервере, где работает индексация Windows Search. Для поддержания высоких стандартов качества работы поиска в оболочке Windows, добавлять неиндексируемые вложенные папки нельзя.

Что ещё нужно знать разработчикам о библиотеках?

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

Можно воспользоваться новым IShellLibrary API для того, чтобы программа могла манипулировать библиотеками. Это поможет постоянно синхронизировать пользовательские файлы, и Windows, как только произойдёт изменение данных в структуре библиотек, сообщит об этом программе, которая контролирует библиотеку. Для нас, программистов, это мощный инструмент, в то же время налагающий большую ответственность.

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

Comments