读取文件路径部分以建模

时间:2017-09-29 16:23:45

标签: java java-8

鉴于我有以下Domain,如果您愿意,可以为要传递的文件建模:

public class Report {

    private String reportId;
    private String reportName;
    private String client;
    private String format;
    private Date cobDate;
    private String filePath;

}

public enum ReportType {

    PNL_REPORT("11", "pnlreport"),
    BALANCE_SHEET("20", "balance"),

    private final String reportId;
    private final String name;

    private ReportType(String reportId, String name) {
        this.reportId = reportId;
        this.name = name;
    }
}

并且鉴于我有以下Service实施:

@Service
public class FileService {

    @Autowired
    private FileRepository fileRepository;


    public List<Report> getReport(String filePattern, String format) {

        List<Report> reportDeliverables = new ArrayList<>();

        List<File> filesToSend = fileRepository.getFilesToSend(sourcePath, filePattern, format);

        \\C:\pathToReports\ClientABC\COB28Sep2017\pnlreport.pdf

        \\return list of report objects, initialised. 
    }

}

我正在使用Java 8,并希望知道如何有效地将列表File中的每个filesToSend对象转换为Report字段,如下所示:

reportID - &gt;派生自Enum查看id(名称匹配没有后缀的文件名)

reportName - &gt; pnlreport.pdf

客户 - &gt; clientABC

cobDate-&GT; 28-SEP-2017

格式 - &gt; PDF

filePath - &gt; C:\ pathToReports \ ClientABC \ COB28Sep2017 \ pnlreport.pdf

路径将始终包含客户端,cob日期,然后是报告文件的名称。

1 个答案:

答案 0 :(得分:2)

就我未解决你的问题而言,有其解决方案。请注意,ReportFile中的正则表达式只满足类似Windows的文件路径。对于其他操作系统,还需要其他正则表达式。

b