Struct cfb::CompoundFile
source · pub struct CompoundFile<F> { /* private fields */ }
Expand description
Implementations§
source§impl<F> CompoundFile<F>
impl<F> CompoundFile<F>
sourcepub fn root_entry(&self) -> Entry
pub fn root_entry(&self) -> Entry
Returns information about the root storage object. This is equivalent
to self.entry("/").unwrap()
(but always succeeds).
sourcepub fn entry<P: AsRef<Path>>(&self, path: P) -> Result<Entry>
pub fn entry<P: AsRef<Path>>(&self, path: P) -> Result<Entry>
Given a path within the compound file, get information about that stream or storage object.
sourcepub fn read_root_storage(&self) -> Entries<'_> ⓘ
pub fn read_root_storage(&self) -> Entries<'_> ⓘ
Returns an iterator over the entries within the root storage object.
This is equivalent to self.read_storage("/").unwrap()
(but always
succeeds).
sourcepub fn read_storage<P: AsRef<Path>>(&self, path: P) -> Result<Entries<'_>>
pub fn read_storage<P: AsRef<Path>>(&self, path: P) -> Result<Entries<'_>>
Returns an iterator over the entries within a storage object.
sourcepub fn walk(&self) -> Entries<'_> ⓘ
pub fn walk(&self) -> Entries<'_> ⓘ
Returns an iterator over all entries within the compound file, starting
from and including the root entry. The iterator walks the storage tree
in a preorder traversal. This is equivalent to
self.walk_storage("/").unwrap()
(but always succeeds).
sourcepub fn walk_storage<P: AsRef<Path>>(&self, path: P) -> Result<Entries<'_>>
pub fn walk_storage<P: AsRef<Path>>(&self, path: P) -> Result<Entries<'_>>
Returns an iterator over all entries under a storage subtree, including the given path itself. The iterator walks the storage tree in a preorder traversal.
sourcepub fn exists<P: AsRef<Path>>(&self, path: P) -> bool
pub fn exists<P: AsRef<Path>>(&self, path: P) -> bool
Returns true if there is an existing stream or storage at the given path, or false if there is nothing at that path.
sourcepub fn is_stream<P: AsRef<Path>>(&self, path: P) -> bool
pub fn is_stream<P: AsRef<Path>>(&self, path: P) -> bool
Returns true if there is an existing stream at the given path, or false if there is a storage or nothing at that path.
sourcepub fn is_storage<P: AsRef<Path>>(&self, path: P) -> bool
pub fn is_storage<P: AsRef<Path>>(&self, path: P) -> bool
Returns true if there is an existing storage at the given path, or false if there is a stream or nothing at that path.
sourcepub fn into_inner(self) -> F
pub fn into_inner(self) -> F
Consumes the CompoundFile
, returning the underlying reader/writer.
source§impl<F: Seek> CompoundFile<F>
impl<F: Seek> CompoundFile<F>
source§impl<F: Read + Seek> CompoundFile<F>
impl<F: Read + Seek> CompoundFile<F>
sourcepub fn open(inner: F) -> Result<CompoundFile<F>>
pub fn open(inner: F) -> Result<CompoundFile<F>>
Opens an existing compound file, using the underlying reader. If the
underlying reader also supports the Write
trait, then the
CompoundFile
object will be writable as well.
source§impl<F: Read + Write + Seek> CompoundFile<F>
impl<F: Read + Write + Seek> CompoundFile<F>
sourcepub fn create(inner: F) -> Result<CompoundFile<F>>
pub fn create(inner: F) -> Result<CompoundFile<F>>
Creates a new compound file with no contents, using the underlying reader/writer. The reader/writer should be initially empty.
sourcepub fn create_with_version(
version: Version,
inner: F
) -> Result<CompoundFile<F>>
pub fn create_with_version( version: Version, inner: F ) -> Result<CompoundFile<F>>
Creates a new compound file of the given version with no contents, using the underlying writer. The writer should be initially empty.
sourcepub fn create_storage<P: AsRef<Path>>(&mut self, path: P) -> Result<()>
pub fn create_storage<P: AsRef<Path>>(&mut self, path: P) -> Result<()>
Creates a new, empty storage object (i.e. “directory”) at the provided path. The parent storage object must already exist.
sourcepub fn create_storage_all<P: AsRef<Path>>(&mut self, path: P) -> Result<()>
pub fn create_storage_all<P: AsRef<Path>>(&mut self, path: P) -> Result<()>
Recursively creates a storage and all of its parent storages if they are missing.
sourcepub fn remove_storage<P: AsRef<Path>>(&mut self, path: P) -> Result<()>
pub fn remove_storage<P: AsRef<Path>>(&mut self, path: P) -> Result<()>
Removes the storage object at the provided path. The storage object must exist and have no children.
sourcepub fn remove_storage_all<P: AsRef<Path>>(&mut self, path: P) -> Result<()>
pub fn remove_storage_all<P: AsRef<Path>>(&mut self, path: P) -> Result<()>
Recursively removes a storage and all of its children. If called on the root storage, recursively removes all of its children but not the root storage itself (which cannot be removed).
sourcepub fn set_storage_clsid<P: AsRef<Path>>(
&mut self,
path: P,
clsid: Uuid
) -> Result<()>
pub fn set_storage_clsid<P: AsRef<Path>>( &mut self, path: P, clsid: Uuid ) -> Result<()>
Sets the CLSID for the storage object at the provided path. (To get
the current CLSID for a storage object, use
self.entry(path)?.clsid()
.)
sourcepub fn create_stream<P: AsRef<Path>>(
&mut self,
path: P
) -> Result<Stream<'_, F>>
pub fn create_stream<P: AsRef<Path>>( &mut self, path: P ) -> Result<Stream<'_, F>>
Creates and returns a new, empty stream object at the provided path. If a stream already exists at that path, it will be replaced by the new stream. The parent storage object must already exist.
sourcepub fn create_new_stream<P: AsRef<Path>>(
&mut self,
path: P
) -> Result<Stream<'_, F>>
pub fn create_new_stream<P: AsRef<Path>>( &mut self, path: P ) -> Result<Stream<'_, F>>
Creates and returns a new, empty stream object at the provided path. Returns an error if a stream already exists at that path. The parent storage object must already exist.
sourcepub fn remove_stream<P: AsRef<Path>>(&mut self, path: P) -> Result<()>
pub fn remove_stream<P: AsRef<Path>>(&mut self, path: P) -> Result<()>
Removes the stream object at the provided path.
sourcepub fn set_state_bits<P: AsRef<Path>>(
&mut self,
path: P,
bits: u32
) -> Result<()>
pub fn set_state_bits<P: AsRef<Path>>( &mut self, path: P, bits: u32 ) -> Result<()>
Sets the user-defined bitflags for the object at the provided path.
(To get the current state bits for an object, use
self.entry(path)?.state_bits()
.)