Source code for dfvfs.vfs.gpt_directory

"""The GUID Partition Table (GPT) directory implementation."""

from dfvfs.path import gpt_path_spec
from dfvfs.vfs import directory


[docs] class GPTDirectory(directory.Directory): """File system directory that uses pyvsgpt.""" def _EntriesGenerator(self): """Retrieves directory entries. Since a directory can contain a vast number of entries using a generator is more memory efficient. Yields: GPTPathSpec: a path specification. """ entry_index = getattr(self.path_spec, "entry_index", None) location = getattr(self.path_spec, "location", None) # Only the virtual root file has directory entries. if ( entry_index is None and location is not None and location == self._file_system.LOCATION_ROOT ): vsgpt_volume = self._file_system.GetGPTVolume() for partition in vsgpt_volume.partitions: gpt_entry_index = partition.entry_index + 1 yield gpt_path_spec.GPTPathSpec( entry_index=entry_index, location=f"/p{gpt_entry_index:d}", parent=self.path_spec.parent, )