重写文件结构，减少冗余代码