You can also mock your interactions with the filesystem. That's what I did with the migration system, and it worked out pretty nicely. It has a few benefits, but it becomes important to assert that you are making the correct calls to FS utilities.