code: def _ListFileEntry(
        self, file_system, file_entry, parent_full_path, output_writer):
      
      # Since every file system implementation can have their own path
      # segment separator we are using JoinPath to be platform and file system
      # type independent.
      full_path = file_system.JoinPath([parent_full_path, file_entry.name])
      if not self._list_only_files or file_entry.IsFile():
        output_writer.WriteFileEntry(full_path)
  
      for sub_file_entry in file_entry.sub_file_entries:
        self._ListFileEntry(file_system, sub_file_entry, full_path, output_writer)
docs: Lists a file entry.
  
      Args:
        file_system (dfvfs.FileSystem): file system that contains the file entry.
        file_entry (dfvfs.FileEntry): file entry to list.
        parent_full_path (str): full path of the parent file entry.
        output_writer (StdoutWriter): output writer.