pub struct FileSystem<IO: ReadWriteSeek, TP, OCC> { /* private fields */ }
Expand description
A FAT filesystem object.
FileSystem
struct is representing a state of a mounted FAT volume.
Implementations§
Source§impl<IO: ReadWriteSeek, TP, OCC> FileSystem<IO, TP, OCC>
impl<IO: ReadWriteSeek, TP, OCC> FileSystem<IO, TP, OCC>
Sourcepub fn new(disk: IO, options: FsOptions<TP, OCC>) -> Result<Self>
pub fn new(disk: IO, options: FsOptions<TP, OCC>) -> Result<Self>
Creates a new filesystem object instance.
Supplied disk
parameter cannot be seeked. If there is a need to read a fragment of disk
image (e.g. partition) library user should wrap the file struct in a struct limiting
access to partition bytes only e.g. fscommon::StreamSlice
.
Note: creating multiple filesystem objects with one underlying device/disk image can cause a filesystem corruption.
pub fn with_disk<F, T>(&self, func: F) -> T
Sourcepub fn fat_type(&self) -> FatType
pub fn fat_type(&self) -> FatType
Returns a type of File Allocation Table (FAT) used by this filesystem.
Sourcepub fn volume_label_as_bytes(&self) -> &[u8] ⓘ
pub fn volume_label_as_bytes(&self) -> &[u8] ⓘ
Returns a volume label from BPB in the Boot Sector as byte array slice.
Label is encoded in the OEM codepage.
Note: This function returns label stored in the BPB block. Use read_volume_label_from_root_dir_as_bytes
to
read label from the root directory.
pub fn cluster_size(&self) -> u32
Sourcepub fn read_status_flags(&self) -> Result<FsStatusFlags>
pub fn read_status_flags(&self) -> Result<FsStatusFlags>
Returns status flags for this volume.
Sourcepub fn stats(&self) -> Result<FileSystemStats>
pub fn stats(&self) -> Result<FileSystemStats>
Returns filesystem statistics like number of total and free clusters.
For FAT32 volumes number of free clusters from FSInfo sector is returned (may be incorrect). For other FAT variants number is computed on the first call to this method and cached for later use.
Sourcepub fn is_dirty(&self) -> bool
pub fn is_dirty(&self) -> bool
Returns true if the disk is currently dirty (i.e. has writes that need to be flush()ed). Note that this differs from the return value of read_status_flags() as it returns the current state of the filesystem in memory, not whether or not the disk was unmounted in a dirty state.
Source§impl<IO: ReadWriteSeek, TP, OCC: OemCpConverter> FileSystem<IO, TP, OCC>
impl<IO: ReadWriteSeek, TP, OCC: OemCpConverter> FileSystem<IO, TP, OCC>
Sourcepub fn volume_label(&self) -> String
pub fn volume_label(&self) -> String
Returns a volume label from BPB in the Boot Sector as String
.
Non-ASCII characters are replaced by the replacement character (U+FFFD). Note: This
function returns label stored in the BPB block. Use read_volume_label_from_root_dir
to
read label from the root directory.
Source§impl<IO: ReadWriteSeek, TP: TimeProvider, OCC: OemCpConverter> FileSystem<IO, TP, OCC>
impl<IO: ReadWriteSeek, TP: TimeProvider, OCC: OemCpConverter> FileSystem<IO, TP, OCC>
Sourcepub fn read_volume_label_from_root_dir(&self) -> Result<Option<String>>
pub fn read_volume_label_from_root_dir(&self) -> Result<Option<String>>
Returns a volume label from root directory as String
.
It finds file with VOLUME_ID
attribute and returns its short name.
Trait Implementations§
Source§impl<IO: ReadWriteSeek, TP, OCC> Drop for FileSystem<IO, TP, OCC>
impl<IO: ReadWriteSeek, TP, OCC> Drop for FileSystem<IO, TP, OCC>
Drop
implementation tries to unmount the filesystem when dropping.