Having a method named 'validate' that returns a list of duplicate files isn't very intuitive.
What would you return if this method would need to check for more than just duplicates ? (for example check that the file is an actual zip archive, rather than just a file ending in .zip)

I would rename this method to something like 'get_collisions_with_existing_files' or something similar and create a new validate that would call get_collisions_with_existing_files and then build a list of error messages (basically move the error message generation logic from FolderAdmin.extract_files to Archive.validate)