Что такое файл .ONE?
Файл с расширением .ONE создается приложением Microsoft OneNote. OneNote позволяет собирать информацию с помощью приложения, как если бы вы использовали черновик для создания заметок. Файлы OneNote могут содержать различные элементы, которые можно размещать в нефиксированных местах на страницах документа. Эти элементы могут содержать текст, оцифрованный почерк и объекты, скопированные из других приложений, включая изображения, рисунки и мультимедийные (аудио/видео) клипы. Microsoft теперь предлагает онлайн-версию OneNote как часть Office365, где заметки могут быть доступны другим пользователям OneNote через Интернет.
Спецификации формата файла .ONE
Формат файла OneNote обеспечивает эффективный способ представления цифровых заметок в виде иерархических наборов разделов и страниц. Каждая страница содержит определяемый пользователем контент в определенной структуре для представления в формате файлов Document Object Model (DOM). Модель данных для этого формата показана ниже.
Обзор структуры
Как показано в модели данных для формата файла OneNote, документ OneNote состоит из разных элементов.
Раздел
Раздел — это самый верхний контейнер в файле OneNote, который также содержит различные элементы, например:
- Страницы
- Метаданные
- Характеристики
Метаданные и свойства включают имя раздела, идентификацию страниц, содержащихся в разделе, и порядок отображения этих страниц. Термин «раздел» относится ко всем страницам, которые находятся в разделе, и к представлению этих данных в файле хранилища версий OneNote® с расширением имени файла .one.
Страница
Пользовательское содержимое в документе OneNote содержится внутри страницы. Информация о странице включает текст, списки, таблицы, заголовки страниц, изображения и теги заметок. Страница состоит из контурных объектов, к которым добавлено большинство содержащихся объектов. Каждой странице можно присвоить имя для осмысленного представления, а объекты также можно добавлять непосредственно на страницы. Страница может дополнительно содержать подстраницы в иерархической системе.
Свойства и наборы свойств
Содержимое OneNote состоит из свойств, наборов свойств и файловых объектов данных. Набор свойств — это набор свойств, который представляет некоторый тип содержимого. Объект файловых данных — это блок двоичных данных, который содержит изображения, встроенные файлы или аудио/видео контент.
Блокнот OneNote
Записная книжка — это набор файлов разделов, которые хранятся в одном каталоге. Набор свойств используется для указания таких параметров, как порядок разделов в записной книжке и цвет записной книжки.
Структура файла
Файл хранилища изменений ДОЛЖЕН начинаться со структуры Заголовок. Оставшаяся часть файла разделена на блоки байтов, где размер и структура каждого блока определяется полем, которое на него ссылается. Блок достижим, если на него ссылается структура Заголовок или если на него ссылается поле в другом достижимом блоке. Данные вне структуры Заголовок и любые достижимые блоки ДОЛЖНЫ игнорироваться.
Все структуры выровнены по 1-байтовым границам. Все целые числа имеют знак, если не указано иное. Все поля имеют формат little-endian, если не указано иное.
Заголовок
Заголовок файла .ONE состоит из фрагментов, которые содержат различные уникальные идентификаторы и поля для представления информации о файле следующим образом:
guidFileType (16 байтов):
GUID, указывающий тип файла хранилища изменений. ДОЛЖНО быть одним из значений из следующей таблицы.
Формат файла | Значение |
---|---|
.one | {7B5C52E4-D88C-4DA7-AEB1-5378D02996D3} |
.onetoc2 | {43FF2FA1-EFD9-4C76-9EE2-10EA5722765F} |
guidFile (16 байтов):
GUID, указывающий идентификатор этого файла хранилища изменений. ДОЛЖЕН быть глобально уникальным.
guidLegacyFileVersion (16 байтов):
ДОЛЖНО быть “{00000000-0000-0000-0000-000000000000}” и ДОЛЖНО игнорироваться.
guidFileFormat (16 байтов):
GUID, указывающий, что файл является файлом хранилища изменений. ДОЛЖЕН быть “{109ADD3F-911B-49F5-A5D0-1791EDC8AED8}”.
ffvLastCodeThatWroteToThisFile (4 байта):
Целое число без знака. ДОЛЖЕН быть одним из значений в следующей таблице, в зависимости от типа файла.
Формат файла | Значение |
---|---|
.один | 0x0000002A |
.onetoc2 | 0x0000001B |
ffvOldestCodeThatHasWrittenToThisFile (4 байта):
Целое число без знака. ДОЛЖЕН быть одним из значений в следующей таблице, в зависимости от формата этого файла.
Формат файла | Значение |
---|---|
.один | 0x0000002A |
.onetoc2 | 0x0000001B |
ffvNewestCodeThatHasWrittenToThisFile (4 байта):
Целое число без знака. ДОЛЖЕН быть одним из значений в следующей таблице, в зависимости от формата этого файла.
Формат файла | Значение |
---|---|
.один | 0x0000002A |
.onetoc2 | 0x0000001B |
ffvOldestCodeThatMayReadThisFile (4 байта):
Целое число без знака. ДОЛЖЕН быть одним из значений в следующей таблице, в зависимости от формата этого файла.
Формат файла | Значение |
---|---|
.один | 0x0000002A |
.onetoc2 | 0x0000001B |
fcrLegacyFreeChunkList (8 байтов):
Структура FileChunkReference32, которая ДОЛЖНА иметь значение “fcrZero”.
fcrLegacyTransactionLog (8 байтов):
Структура FileChunkReference32, которая ДОЛЖНА быть “fcrNil”.
cTransactionsInLog (4 байта):
Целое число без знака, указывающее количество транзакций в журнале транзакций. НЕ ДОЛЖЕН быть равен нулю.
cbLegacyExpectedFileLength (4 байта):
Целое число без знака, которое ДОЛЖНО быть равно нулю и ДОЛЖНО игнорироваться.
rgbPlaceholder (8 байтов):
Целое число без знака, которое ДОЛЖНО быть равно нулю и ДОЛЖНО игнорироваться.
fcrLegacyFileNodeListRoot (8 байтов):
Структура FileChunkReference32, которая ДОЛЖНА быть “fcrNil”.
cbLegacyFreeSpaceInFreeChunkList (4 байта):
Целое число без знака, которое ДОЛЖНО быть равно нулю и ДОЛЖНО игнорироваться.
fNeedsDefrag (1 байт):
ДОЛЖЕН игнорироваться.
fRepairedFile (1 байт):
ДОЛЖЕН игнорироваться.
fNeedsGarbageCollect (1 байт):
ДОЛЖЕН игнорироваться.
fHasNoEmbeddedFileObjects (1 байт):
целое число без знака, которое ДОЛЖНО быть равно нулю и ДОЛЖНО игнорироваться.
guidAncestor (16 байтов):
GUID, указывающий поле Header.guidFile файла таблицы содержания, заданное следующей таблицей:
Формат файла оглавления | Расположение файла оглавления |
---|---|
Файл раздела - .One | Файл оглавления находится в той же директории, что и этот файл. |
Файл оглавления - .onetoc2 | Файл оглавления находится в родительском каталоге этого файла. |
Если GUID равен {00000000-0000-0000-0000-000000000000}, это поле не ссылается на файл оглавления.
crcName (4 байта):
Целое число без знака, указывающее значение CRC имени этого файла хранилища ревизий. Имя представляет собой Unicode-представление имени файла с его расширением и дополнительным нулевым символом в конце. Этот CRC всегда рассчитывается с использованием алгоритма CRC для файла .one, независимо от формата файла хранилища изменений.
fcrHashedChunkList (12 байт):
Структура FileChunkReference64x32, указывающая ссылку на первый FileNodeListFragment в списке хешированных фрагментов. Если значение структуры FileChunkReference64x32 равно «fcrZero» или «fcrNil», список хешированных фрагментов не существует.
fcrTransactionLog (12 байт):
Структура FileChunkReference64x32, указывающая ссылку на первую структуру TransactionLogFragment в журнале транзакций. Значение поля fcrTransactionLog НЕ ДОЛЖНО быть «fcrZero» и НЕ ДОЛЖНО быть «fcrNil».
fcrFileNodeListRoot (12 байт):
Структура FileChunkReference64x32, указывающая ссылку на список узлов корневого файла. Значение поля fcrFileNodeListRoot НЕ ДОЛЖНО быть «fcrZero» и НЕ ДОЛЖНО быть «fcrNil».
fcrFreeChunkList (12 байт):
Структура FileChunkReference64x32, указывающая ссылку на первую структуру FreeChunkListFragment. Если значение структуры FileChunkReference64x32 равно «fcrZero» или «fcrNil», то список свободных фрагментов не существует.
cbExpectedFileLength (8 байтов):
Целое число без знака, указывающее размер в байтах этого файла хранилища ревизий.
cbFreeSpaceInFreeChunkList (8 байтов):
Целое число без знака, которое ДОЛЖНО указывать размер в байтах свободного пространства, указанного в списке свободных блоков.
guidFileVersion (16 байтов):
GUID. При изменении значения поля cTransactionsInLog или поля guidDenyReadFileVersion guidFileVersion ДОЛЖЕН быть изменен на новый идентификатор GUID.
nFileVersionGeneration (8 байтов):
Целое число без знака, указывающее, сколько раз файл был изменен. ДОЛЖЕН увеличиваться при изменении поля guidFileVersion.
guidDenyReadFileVersion (16 байтов):
GUID. При изменении существующего содержимого файла, за исключением структуры заголовка файла и неиспользуемых блоков хранения, guidDenyReadFileVersion ДОЛЖЕН быть изменен на новый идентификатор GUID.
grfDebugLogFlags (4 байта):
ДОЛЖЕН быть равен нулю. ДОЛЖЕН быть проигнорирован.
fcrDebugLog (12 байт):
Структура FileChunkReference64x32, которая ДОЛЖНА иметь значение «fcrZero». ДОЛЖЕН быть проигнорирован.
fcrAllocVerificationFreeChunkList (12 байт):
Структура FileChunkReference64x32, которая ДОЛЖНА быть “fcrZero”. ДОЛЖЕН быть проигнорирован.
bnCreated (4 байта):
Целое число без знака, указывающее номер сборки приложения, создавшего этот файл хранилища изменений. СЛЕДУЕТ игнорировать.
bnLastWroteToThisFile (4 байта):
Целое число без знака, указывающее номер сборки приложения, которое последним записывало этот файл хранилища ревизий. СЛЕДУЕТ игнорировать.
bnOldestWritten (4 байта):
Целое число без знака, указывающее номер сборки самого старого приложения, которое записывало в этот файл хранилища ревизий. СЛЕДУЕТ игнорировать.
bnNewestWritten (4 байта):
Целое число без знака, указывающее номер сборки новейшего приложения, которое записало в этот файл хранилища ревизий. СЛЕДУЕТ игнорировать.
rgbReserved (728 байт):
ДОЛЖЕН быть равен нулю. ДОЛЖЕН быть проигнорирован.