Моя проблема в том, что я объединяю несколько файлов PDF в один, и после того, как это сделано, я не могу удалить файлы PDF, из которых я создал объединенный файл.Следующий пример кода является рассматриваемой частью.
//combine PDF files into one
PDFMergerUtility merger = new PDFMergerUtility();
for (int i = 0; i < n; i++) {
merger.addSource(new File(outputPath[i] + ".pdf"));
}
merger.setDestinationFileName("C:\\Users\\kh\\Desktop\\work\\OCR\\images\\finalPDF\\"+ file.getName().split(Pattern.quote("."))[0] +".pdf");
merger.mergeDocuments(null);
System.out.println("Third step done.");
FileUtils.cleanDirectory(new File(pdfPath));
Он компилируется без ошибок, работает, но при FileUtils.cleanDirectory(new File(pdfPath));
выдает эту ошибку: java.io.IOException: Unable to delete file: C:\Users\kh\Desktop\work\OCR\images\tempPDF\splitTiff9.pdf
Я полагал, что PDFMergeUtility не отпускает PDF-файлы ввопросы, но я понятия не имею, как решить эту проблему.Кстати, закрытие работающего приложения освобождает PDF-файлы и может быть удалено.
Обновление:
PDDocument[] pdfStreams = new PDDocument[n];
PDFMergerUtility merger = new PDFMergerUtility();
for (int i = 0; i < n; i++) {
File f = new File(outputPath[i] + ".pdf");
PDDocument doc = PDDocument.load(f);
merger.addSource(f);
pdfStreams[i] = doc;
}
merger.setDestinationFileName("C:\\Users\\kh\\Desktop\\work\\OCR\\images\\finalPDF\\"+ file.getName().split(Pattern.quote("."))[0] +".pdf");
merger.mergeDocuments(null);
//close pdfmerger´s streams
for (int i = 0; i < n; i++) {
pdfStreams[i].close();
}`
Я вызываю массив ранее для циклов, и я пытаюсь закрыть между объединением и удалением всего в папке,Выдает ту же ошибку, что и раньше