I would probably move anything that deals with the file system to a separate method (probably call it `setup` and trigger it from the `start` method).

Constructors should avoid causing side effects whenever possible, that makes mocking and testing the behavior way easier. It also makes it possible to instantiate it before you actually need it (eg. when you need to pass references around).