File struct. File utility functions are now methods of the File struct.
The rest of source code refactored.