我希望创建一个系统,其中明确定义的本地文件系统文件夹结构遵循特定模式。以编程方式或手动违反模式应该抛出异常。
例如:
company/
|
---> building/
|
----> images/
| |
| --->image.jpg
|
|---> issues/
|
-----> current/
|
-----> archive/
上面的模式是简化与现实(想象7级深度和宽度)。
我的想法是我可以使用Junit来确保满足模式。我开始使用Java 7中的Paths API在Spring MVC上编写一些自定义代码,尽管似乎必须有一种更快的方法,不易出错。 (已经创建了一些框架?访问者设计模式?)我希望应用程序强制执行模式而不是操作系统或外部脚本。此外,目录名称可以是动态生成的数字ID。
管理员:如果这个问题被认为不具有建设性,我会很乐意将其删除。我环顾了stackoverflow并没有找到合适的答案。
更新: 为了更清楚起见,这就是我现在正在做的事情:
public static Path getCompanyDirectory(Integer companyId) {
//getRootFolder returns the folder above "company"
return Paths.get(File.separator+getRootFolder()+File.separator+COMPANIES+File.separator+companyId.toString());
}
public static void createCompanyDirectory(Integer companyId) {
createDirectories(getCompanyDirectory(companyId));
}
public static Path getBuildingDirectory(Integer companyId, Integer buildingId) {
return Paths.get(File.separator+getRootFolder()+File.separator+COMPANIES+File.separator+companyId.toString()+
File.separator+BUILDING+File.separator+buildingId);
}
public static void createBuildingDirectory(Integer companyId, Integer buildingId) {
createDirectories(getBuildingDirectory(companyId, buildingId));
}
private static void createDirectories(Path dir) {
try {
if (Files.notExists(dir)) {
Files.createDirectories(dir);
}
}
catch (IOException e) {
e.printStackTrace();
}
}
//the rest omitted for brevity