docs: def build_output_directory(self, path):
          '''
          Set the output directory for extracted files.
  
          @path - The path to the file that data will be extracted from.
  
          Returns None.
          '''
          # If we have not already created an output directory for this target
          # file, create one now
          if not has_key(self.extraction_directories, path):
              basedir = os.path.dirname(path)
              basename = os.path.basename(path)
  
              if basedir != self.directory:
                  # During recursive extraction, extracted files will be in subdirectories
                  # of the CWD. This allows us to figure out the subdirectory by simply
                  # splitting the target file's base directory on our known CWD.
                  #
                  # However, the very *first* file being scanned is not necessarily in the
                  # CWD, so this will raise an IndexError. This is easy to handle though,
                  # since the very first file being scanned needs to have its contents
                  # extracted to ${CWD}/_basename.extracted, so we just set the subdir
                  # variable to a blank string when an IndexError is encountered.
                  try:
                      subdir = basedir.split(self.directory)[1][1:]
                  except IndexError as e:
                      subdir = ""
              else:
                  subdir = ""
  
              if self.output_directory_override:
                  output_directory = os.path.join(self.directory, subdir, self.output_directory_override)
              else:
                  outdir = os.path.join(self.directory, subdir, '_' + basename)
                  output_directory = unique_file_name(outdir, extension='extracted')
  
              if not os.path.exists(output_directory):
                  os.mkdir(output_directory)
  
              self.extraction_directories[path] = output_directory
              self.output[path].directory = os.path.realpath(output_directory) + os.path.sep
          # Else, just use the already created directory
          else:
              output_directory = self.extraction_directories[path]
  
          return output_directory