I get this every so often without external drives attached and it's because of a problem with Launch Services. You can rebuild the Launch Services database with the command below.
Copy and past into Terminal.
Code:
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -domain local -domain system -domain user