ไฟล์ .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 ไบต์):’ จำนวนเต็มที่ไม่ได้ลงชื่อ ต้องเป็นค่าใดค่าหนึ่งในตารางต่อไปนี้ ขึ้นอยู่กับประเภทไฟล์
รูปแบบไฟล์ | ค่า |
---|---|
.หนึ่ง | 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 ของชื่อไฟล์ที่มีนามสกุลและอักขระ null เพิ่มเติมที่ส่วนท้าย 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 bytes):
เลขจำนวนเต็มที่ไม่ได้ลงนามซึ่งระบุจำนวนครั้งที่ไฟล์มีการเปลี่ยนแปลง ต้องเพิ่มขึ้นเมื่อฟิลด์ guidFileVersion เปลี่ยนแปลง
`guidDenyReadFileVersion (16 ไบต์):’ GUID เมื่อเนื้อหาที่มีอยู่ของไฟล์มีการเปลี่ยนแปลง โดยไม่รวมโครงสร้าง ส่วนหัว ของไฟล์และบล็อกหน่วยเก็บข้อมูลที่ไม่ได้ใช้ guidDenyReadFileVersion จะต้องเปลี่ยนเป็น GUID ใหม่
`grfDebugLogFlags (4 ไบต์):’ ต้องเป็นศูนย์ ต้องละเว้น
`fcrDebugLog (12 ไบต์):’ โครงสร้าง FileChunkReference64x32 ที่ต้องมีค่าเป็น “fcrZero” ต้องละเว้น
`fcrAllocVerificationFreeChunkList (12 ไบต์):’ โครงสร้าง FileChunkReference64x32 ที่ต้องเป็น “fcrZero” ต้องละเว้น
bnCreated (4 ไบต์):
จำนวนเต็มที่ไม่ได้ลงนามซึ่งระบุหมายเลขบิลด์ของแอปพลิเคชันที่สร้างไฟล์จัดเก็บการแก้ไขนี้ ควรละเว้น
bnLastWroteToThisFile (4 ไบต์):
จำนวนเต็มที่ไม่ได้ลงนามซึ่งระบุหมายเลขบิลด์ของแอปพลิเคชันที่เขียนล่าสุดไปยังไฟล์จัดเก็บการแก้ไขนี้ ควรละเว้น
bnOldestWritten (4 bytes):
จำนวนเต็มที่ไม่ได้ลงนามซึ่งระบุหมายเลขบิลด์ของแอปพลิเคชันที่เก่าที่สุดที่เขียนไปยังไฟล์จัดเก็บการแก้ไขนี้ ควรละเว้น
bnNewestWritten (4 bytes):
จำนวนเต็มที่ไม่ได้ลงนามซึ่งระบุหมายเลขบิลด์ของแอปพลิเคชันใหม่ล่าสุดที่เขียนไปยังไฟล์จัดเก็บการแก้ไขนี้ ควรละเว้น
rgbReserved (728 ไบต์):
ต้องเป็นศูนย์ ต้องละเว้น