Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions config/dpkg/changelog
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
dfvfs (20251125-1) unstable; urgency=low
dfvfs (20260207-1) unstable; urgency=low

* Auto-generated

-- Log2Timeline maintainers <log2timeline-maintainers@googlegroups.com> Tue, 25 Nov 2025 13:08:38 +0100
-- Log2Timeline maintainers <log2timeline-maintainers@googlegroups.com> Sat, 07 Feb 2026 09:33:49 +0100
2 changes: 1 addition & 1 deletion dfvfs/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@
types and file formats.
"""

__version__ = '20251125'
__version__ = '20260207'
7 changes: 3 additions & 4 deletions dfvfs/vfs/fat_directory.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,12 @@ def _EntriesGenerator(self):
location = getattr(self.path_spec, 'location', None)

for fsfat_sub_file_entry in self._fsfat_file_entry.sub_file_entries:
directory_entry = fsfat_sub_file_entry.name

if not location or location == self._file_system.PATH_SEPARATOR:
directory_entry = self._file_system.JoinPath([directory_entry])
directory_entry = self._file_system.JoinPath([
fsfat_sub_file_entry.name])
else:
directory_entry = self._file_system.JoinPath([
location, directory_entry])
location, fsfat_sub_file_entry.name])

yield fat_path_spec.FATPathSpec(
identifier=fsfat_sub_file_entry.identifier, location=directory_entry,
Expand Down
27 changes: 15 additions & 12 deletions dfvfs/vfs/fat_file_system.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,17 +79,18 @@ def FileEntryExistsByPathSpec(self, path_spec):
Raises:
BackEndError: if the file entry cannot be opened.
"""
# Opening a file by identifier is faster than opening a file by location.
# Opening a file by identifier is faster than opening a file by location,
# but can fail in determining the VFAT long file name.
fsfat_file_entry = None
location = getattr(path_spec, 'location', None)
identifier = getattr(path_spec, 'identifier', None)

try:
if identifier is not None:
if location is not None:
fsfat_file_entry = self._fsfat_volume.get_file_entry_by_path(location)
elif identifier is not None:
fsfat_file_entry = self._fsfat_volume.get_file_entry_by_identifier(
identifier)
elif location is not None:
fsfat_file_entry = self._fsfat_volume.get_file_entry_by_path(location)

except IOError as exception:
raise errors.BackEndError(exception)
Expand All @@ -108,7 +109,8 @@ def GetFileEntryByPathSpec(self, path_spec):
Raises:
BackEndError: if the file entry cannot be opened.
"""
# Opening a file by identifier is faster than opening a file by location.
# Opening a file by identifier is faster than opening a file by location,
# but can fail in determining the VFAT long file name.
fsfat_file_entry = None
location = getattr(path_spec, 'location', None)
identifier = getattr(path_spec, 'identifier', None)
Expand All @@ -121,11 +123,11 @@ def GetFileEntryByPathSpec(self, path_spec):
fsfat_file_entry=fsfat_file_entry, is_root=True)

try:
if identifier is not None:
if location is not None:
fsfat_file_entry = self._fsfat_volume.get_file_entry_by_path(location)
elif identifier is not None:
fsfat_file_entry = self._fsfat_volume.get_file_entry_by_identifier(
identifier)
elif location is not None:
fsfat_file_entry = self._fsfat_volume.get_file_entry_by_path(location)

except IOError as exception:
raise errors.BackEndError(exception)
Expand All @@ -150,15 +152,16 @@ def GetFATFileEntryByPathSpec(self, path_spec):
PathSpecError: if the path specification is missing location and
identifier.
"""
# Opening a file by identifier is faster than opening a file by location.
# Opening a file by identifier is faster than opening a file by location,
# but can fail in determining the VFAT long file name.
location = getattr(path_spec, 'location', None)
identifier = getattr(path_spec, 'identifier', None)

if identifier is not None:
if location is not None:
fsfat_file_entry = self._fsfat_volume.get_file_entry_by_path(location)
elif identifier is not None:
fsfat_file_entry = self._fsfat_volume.get_file_entry_by_identifier(
identifier)
elif location is not None:
fsfat_file_entry = self._fsfat_volume.get_file_entry_by_path(location)
else:
raise errors.PathSpecError(
'Path specification missing location and identifier.')
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "dfvfs"
version = "20251125"
version = "20260207"
description = "Digital Forensics Virtual File System (dfVFS)"
maintainers = [
{ name = "Log2Timeline maintainers", email = "log2timeline-maintainers@googlegroups.com" },
Expand Down
Loading