Przegląd
CfbWriter serializuje CfbDocument do prawidłowego pliku Compound File Binary. Wywołaj ToBytes, aby uzyskać zserializowaną zawartość jako tablicę bajtów, lub WriteFile, aby zapisać bezpośrednio na dysk. Wewnętrzna metoda Serialize buduje sektory FAT, DIFAT, mini-FAT i katalogu zgodnie ze specyfikacją MS-CFB. Konstruktorzy są używani wewnętrznie przez zapisujący do reprezentacji rekordów wpisów i łańcuchów sektorów.
Konstruktory
| Sygnatura | Opis |
|---|
Serializer(document: CfbDocument) | Tworzy nowy CfbWriter z określonymi parametrami. |
EntryRecord(streamId: uint, name: string, objectType: DirectoryObjectType, clsid: byte[], stateBits: uint, creationTime: ulong, modifiedTime: ulong) | Tworzy nowy CfbWriter z określonymi parametrami. |
Chain(payload: byte[]) | Tworzy nowy CfbWriter z określonymi parametrami. |
Metody
| Sygnatura | Opis |
|---|
ToBytes(document: CfbDocument) | Serializuje document do tablicy bajtów zgodnej z CFB. |
WriteFile(document: CfbDocument, path: string) | Serializuje document i zapisuje go do pliku w path. |
Serialize() | Wykonuje wewnętrzny układ CFB: przydziela sektory FAT, tworzy wpisy katalogu i zwraca kompletny plik binarny. |
Właściwości
| Nazwa | Typ | Dostęp | Opis |
|---|
StreamId | uint | Odczyt | Indeks katalogu zerowy przypisany temu rekordowi wpisu. |
Name | string | Odczyt | UTF-16LE nazwa wpisu tak, jak będzie się pojawiać w katalogu CFB. |
ObjectType | DirectoryObjectType | Odczyt | Wartość DirectoryObjectType zakodowana w bajcie typu obiektu tego wpisu. |
Clsid | byte[] | Odczyt | 16-bajtowy CLSID zapisany w polu CLSID tego wpisu. |
StateBits | uint | Odczyt | Bity stanu zdefiniowane przez aplikację zapisane w tym wpisie. |
CreationTime | ulong | Odczyt | Znacznik czasu utworzenia (FILETIME) zapisany w tym wpisie. |
ModifiedTime | ulong | Odczyt | Znacznik czasu modyfikacji (FILETIME) zapisany w tym wpisie. |
StreamData | byte[] | Odczyt | Bajty ładunku dla wpisów typu strumieniowego (puste dla wpisów typu magazynowego). |
Children | List<EntryRecord> | Odczyt | Uporządkowana lista podrzędnych wpisów EntryRecord dla węzłów typu magazynowego. |
ColorFlag | DirectoryColorFlag | Odczyt | Kolor drzewa czerwono-czarnego zapisany w rekordzie katalogu tego wpisu. |
LeftSiblingId | uint | Odczyt | Identyfikator strumienia lewego rodzeństwa w drzewie czerwono-czarnym. |
RightSiblingId | uint | Odczyt | Identyfikator strumienia prawego rodzeństwa w drzewie czerwono-czarnym. |
ChildId | uint | Odczyt | Stream ID pierwszego wpisu potomnego (dla węzłów typu storage). |
StartingSectorLocation | uint | Odczyt | Indeks pierwszego sektora FAT dla danych tego strumienia. |
StreamSize | ulong | Odczyt | Rozmiar w bajtach ładunku danych strumienia. |
IsRoot | bool | Odczyt | True, jeśli ten wpis jest głównym wpisem pamięci (stream ID 0). |
IsStorage | bool | Odczyt | True, jeśli ten wpis jest kontenerem pamięci. |
IsStream | bool | Odczyt | True, jeśli ten wpis jest strumieniem danych. |
Payload | byte[] | Odczyt | Pełne zserializowane bajty tego wpisu (używane wewnętrznie przez konstruktor łańcucha). |
Sectors | List<uint> | Odczyt | Uporządkowana lista indeksów sektorów FAT przydzielonych do danych tego wpisu. |
FirstSector | uint | Odczyt | Indeks pierwszego sektora FAT przydzielonego do danych tego wpisu. |
Zobacz także