已经重构代码结构，抽取filesystem类，容易扩展