Added file.withTempDirectory
Refactored withTemp & withTempDirectory