Java中用于上载文件的强制文件夹结构

时间:2015-01-05 20:51:39

标签: java design-patterns junit

我希望创建一个系统,其中明确定义的本地文件系统文件夹结构遵循特定模式。以编程方式或手动违反模式应该抛出异常。

例如:

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

0 个答案:

没有答案