我想从一个文件目录中读取,而不仅仅是一个文件Java,我已经完成了大部分设置,我只是坚持如何实现它。我想为目录中的每个文件调用generatePdf()
这是我的代码:
我想从一个文件目录中读取,而不仅仅是一个文件Java,我已经完成了大部分设置,我只是坚持如何实现它。我想为目录中的每个文件调用generatePdf()
这是我的代码:
private void run() throws Exception
{
// This call here
byte[] pdfBytes = this.generatePdf();
I was thinking I could do something like this
// some more processing
}
private void callGeneratePdf(File[] listOfFiles)
{
listOfFiles = getListOfFiles(DEFAULT_FORMML_FILE);
for(File f : listOfFiles)
{
f = generatePdf(); // ???
}
}
private byte[] generatePdf() throws Exception
{
String appPrintList = "<PrintListML/>"; // Empty application specific print list; no record worksheets will be included.
String formML = PrintEngine.readFileAsString(inputFormML.getAbsolutePath());
PrintListOptions plOptions = new PrintListOptions().setIncludeRecords(true).setRequireFormMLStatusPOR(true).setRequireFormMLStatusActive(false);
PrintOptions pOptions = new PrintOptions().setItemizations(true).setSmartWorksheets(true);
// Generate the PDF
return FpsService.getPrintJob(formML, appPrintList, plOptions, pOptions);
}
private static File[] getListOfFiles(String path)
{
String files;
File folder = new File(path);
File[] listOfFiles = folder.listFiles();
for (int i = 0; i < listOfFiles.length; i++) {
if (listOfFiles[i].isFile()) {
files = listOfFiles[i].getName();
System.out.println(files);
}
}
return listOfFiles;
}
我的计划是编写一个新方法,在文件数组(File [])中有多次调用generatePdf()。任何帮助或建议将不胜感激,谢谢。
我的计划是编写一个新方法,在文件数组(File [])中有多次调用generatePdf()。任何帮助或建议将不胜感激,谢谢。
答案 0 :(得分:0)
使用SimpleFileVisitor的特殊实现怎么样,每次访问文件时都会调用逻辑?
final FileVisitor<Path> myWalker = new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
if(Files.isRegularFile(file, LinkOption.NOFOLLOW_LINKS)){
//Call f = generatePdf()
}
return super.visitFile(file, attrs);
}
};
Files.walkFileTree(Paths.get("/yourpath/"), myWalker);