Какво е .ONE файл?
Файлът, представен с разширение .ONE, се създава от приложението Microsoft OneNote. OneNote ви позволява да събирате информация с помощта на приложението, сякаш използвате бележника си за чернови. Файловете на OneNote могат да съдържат различни елементи, които могат да бъдат поставени на нефиксирани места на страниците на документа. Тези елементи може да съдържат текст, дигитализиран ръкопис и обекти, копирани от други приложения, включително изображения, рисунки и мултимедийни (аудио/видео) клипове. Microsoft вече предлага онлайн версия на OneNote като част от Office365, където бележките могат да се споделят с други потребители на OneNote по интернет.
.ONE Спецификации на файлов формат
Файловият формат на OneNote осигурява ефективен начин за представяне на цифрови бележки като йерархични набори от раздели и страници. Всяка страница съдържа дефинирано от потребителя съдържание в специфична структура за представяне чрез файловия формат Document Object Model (DOM). Моделът на данните за този формат е илюстриран по-долу.
Преглед на структурата
Както е илюстрирано в модела на данни за файловия формат на OneNote, документът на OneNote се състои от различни елементи.
Раздел
Разделът е най-горният контейнер във файл на OneNote, който допълнително съдържа различни елементи в него като:
- Страници
- Метаданни
- Имоти
Метаданните и свойствата включват името на раздела, идентификация на страниците, които се съдържат в раздела, и реда, в който се появяват тези страници. Терминът “секция” се отнася до всички страници, които са в секция, и представянето на тези данни във файл за хранилище на ревизии на OneNote®, който има разширение на името на файла .one.
Страница
Дефинирано от потребителя съдържание в документ на OneNote се съдържа в страница. Информацията за страницата включва текст, списъци, таблици, заглавия на страници, изображения и тагове за бележки. Една страница се състои от контурни обекти, към които се добавят повечето от съдържащите се обекти. На всяка страница може да се присвои име за смислено представяне и обекти могат да се добавят директно към страниците. Една страница може допълнително да съдържа подстраници в йерархична система.
Свойства и набори от свойства
Съдържанието на OneNote се състои от свойства, набори от свойства и обекти с файлови данни. Набор от свойства е колекция от свойства, която представлява някакъв тип съдържание. Обект на файлови данни е блок от двоични данни, който съдържа снимки, вградени файлове или аудио/видео съдържание.
Бележник на OneNote
Бележникът е колекция от файлове със секции, които се съхраняват в една и съща директория. Колекция от свойства се използва за указване на настройки като ред на секциите в бележника и цвета на бележника.
Файлова структура
Файлът за съхранение на ревизии ТРЯБВА да започва със структура Header. Останалата част от файла е разделена на блокове от байтове, където размерът и структурата на всеки блок се определят от полето, което го препраща. Един блок е достъпен, ако е посочен от структурата Header или ако е посочен от поле в друг достъпен блок. Данните извън структурата Header и всички достъпни блокове ТРЯБВА да се игнорират.
Всички структури са подравнени на 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 байта):
Цяло число без знак. ТРЯБВА да бъде една от стойностите в следващата таблица в зависимост от типа на файла.
Файлов формат | Стойност |
---|---|
.one | 0x0000002A |
.onetoc2 | 0x0000001B |
ffvOldestCodeThatHasWrittenToThisFile (4 байта):
Цяло число без знак. ТРЯБВА да бъде една от стойностите в следващата таблица, в зависимост от файловия формат на този файл.
Файлов формат | Стойност |
---|---|
.one | 0x0000002A |
.onetoc2 | 0x0000001B |
ffvNewestCodeThatHasWrittenToThisFile (4 байта):
Цяло число без знак. ТРЯБВА да бъде една от стойностите в следващата таблица, в зависимост от файловия формат на този файл.
Файлов формат | Стойност |
---|---|
.one | 0x0000002A |
.onetoc2 | 0x0000001B |
ffvOldestCodeThatMayReadThisFile (4 байта):
Цяло число без знак. ТРЯБВА да бъде една от стойностите в следващата таблица, в зависимост от файловия формат на този файл.
Файлов формат | Стойност |
---|---|
.one | 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. Когато съществуващото съдържание на файла се променя, с изключение на структурата Header на файла и неизползваните блокове за съхранение, guidDenyReadFileVersion ТРЯБВА да се промени на нов GUID.
grfDebugLogFlags (4 байта):
ТРЯБВА да е нула. ТРЯБВА да се игнорира.
fcrDebugLog (12 байта):
FileChunkReference64x32 структура, която ТРЯБВА да има стойност “fcrZero”. ТРЯБВА да се игнорира.
fcrAllocVerificationFreeChunkList (12 байта):
FileChunkReference64x32 структура, която ТРЯБВА да бъде “fcrZero”. ТРЯБВА да се игнорира.
bnCreated (4 байта):
Цяло число без знак, което указва номера на компилация на приложението, което е създало този файл за съхранение на ревизия. ТРЯБВА да се игнорира.
bnLastWroteToThisFile (4 байта):
Цяло число без знак, което указва номера на компилация на приложението, което последно е писало в този файл за съхранение на ревизии. ТРЯБВА да се игнорира.
bnOldestWritten (4 байта):
Цяло число без знак, което указва номера на компилация на най-старото приложение, което е записало в този файл за съхранение на ревизии. ТРЯБВА да се игнорира.
bnNewestWritten (4 байта):
Цяло число без знак, което указва номера на компилация на най-новото приложение, което е записало в този файл за съхранение на ревизии. ТРЯБВА да се игнорира.
rgbReserved (728 байта):
ТРЯБВА да е нула. ТРЯБВА да се игнорира.