macOS Custom Directory for Screenshots
If by "user selected directory" you are referring to a directory (other than the desktop) that is defined prior to taking the screenshot, then you can easily use the defaults command inside Terminal to change this for all future screenshots. If however, you mean changing the directory as the screenshot is taken, this is not possible as far as I am aware of.


Defining the screenshot location:
defaults write com.apple.screencapture location /path/to/new/location
To apply changes:
killall SystemUIServer  
Defining the screenshot type:
defaults write com.apple.screencapture type png - change extension as required.
To apply changes:
killall SystemUIServer 
Enable/Disable image shadows:
defaults write com.apple.screencapture disable-shadow -bool true
defaults write com.apple.screencapture disable-shadow -bool false
To apply changes:
killall SystemUIServer


As Steve mentioned, you can also take a look at TinkerTool to make adjustments, however the commands I referenced above should be what you are looking for. Let me know how you get on.