dissect.target.filesystems.zip
¶
Module Contents¶
Classes¶
Filesystem implementation for zip files. |
|
Virtual directory implementation. Backed by a dict. |
Attributes¶
- dissect.target.filesystems.zip.log¶
- class dissect.target.filesystems.zip.ZipFilesystem(fh: BinaryIO, base: str | None = None, *args, **kwargs)¶
Bases:
dissect.target.filesystem.Filesystem
Filesystem implementation for zip files.
Python does not have symlink support in the zipfile module, so that’s not currently supported. See https://github.com/python/cpython/issues/82102 for more information.
- __type__ = 'zip'¶
A short string identifying the type of filesystem.
- zip¶
- base = ''¶
- get(path: str, relentry: dissect.target.filesystem.FilesystemEntry = None) dissect.target.filesystem.FilesystemEntry ¶
Returns a ZipFilesystemEntry object corresponding to the given path.
- class dissect.target.filesystems.zip.ZipFilesystemEntry(fs: ZipFilesystem, path: str, entry: zipfile.ZipInfo)¶
Bases:
dissect.target.filesystem.VirtualDirectory
Virtual directory implementation. Backed by a dict.
- fs: ZipFilesystem¶
- entry: zipfile.ZipInfo¶
- open() BinaryIO ¶
Open this filesystem entry.
- Returns:
A file-like object. Resolves symlinks when possible
- iterdir() Iterator[str] ¶
Iterate over the contents of a directory, return them as strings.
- Returns:
An iterator of directory entries as path strings.
- scandir() Iterator[dissect.target.filesystem.FilesystemEntry] ¶
Iterate over the contents of a directory, yields
FilesystemEntry
.- Returns:
An iterator of
FilesystemEntry
.
- is_dir(follow_symlinks: bool = True) bool ¶
Determine if this entry is a directory.
- Parameters:
follow_symlinks – Whether to resolve the entry if it is a symbolic link.
- Returns:
True
if the entry is a directory or a symbolic link to a directory, returnFalse
otherwise. Iffollow_symlinks
isFalse
, returnTrue
only if the entry is a directory (without following symlinks).
- is_file(follow_symlinks: bool = True) bool ¶
Determine if this entry is a file.
- Parameters:
follow_symlinks – Whether to resolve the entry if it is a symbolic link.
- Returns:
True
if the entry is a file or a symbolic link to a file, returnFalse
otherwise. Iffollow_symlinks
isFalse
, returnTrue
only if the entry is a file (without following symlinks).
- is_symlink() bool ¶
Determine whether this entry is a symlink.
- Returns:
True
if the entry is a symbolic link,False
otherwise.
- readlink() str ¶
Read the link where this entry points to, return the resulting path as string.
If it is a symlink and returns the entry that corresponds to that path. This means it follows the path a link points to, it tries to do it recursively.
- Returns:
The path the link points to.
- readlink_ext() dissect.target.filesystem.FilesystemEntry ¶
Read the link where this entry points to, return the resulting path as
FilesystemEntry
.If it is a symlink and returns the string that corresponds to that path. This means it follows the path a link points to, it tries to do it recursively.
- Returns:
The filesystem entry the link points to.
- stat(follow_symlinks: bool = True) dissect.target.helpers.fsutil.stat_result ¶
Determine the stat information of this entry.
If the entry is a symlink and
follow_symlinks
isTrue
, it gets resolved, attempting to stat the path where it points to.- Parameters:
follow_symlinks – Whether to resolve the symbolic link if this entry is a symbolic link.
- Returns:
The stat information of this entry.
- lstat() dissect.target.helpers.fsutil.stat_result ¶
Return the stat information of the given path, without resolving links.