From dfb81d9ac558e617103c29b77ab006ff63d61b4f Mon Sep 17 00:00:00 2001 From: Karl Mortensen Date: Mon, 17 Nov 2014 11:23:32 -0500 Subject: [PATCH] Update Photorec XML parsing to clip paths from filenames --- .../photoreccarver/PhotoRecCarverOutputParser.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/modules/photoreccarver/PhotoRecCarverOutputParser.java b/Core/src/org/sleuthkit/autopsy/modules/photoreccarver/PhotoRecCarverOutputParser.java index 6b24dfd9dc..03c53202ae 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/photoreccarver/PhotoRecCarverOutputParser.java +++ b/Core/src/org/sleuthkit/autopsy/modules/photoreccarver/PhotoRecCarverOutputParser.java @@ -22,6 +22,7 @@ import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.nio.file.Path; +import java.nio.file.Paths; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -92,10 +93,13 @@ class PhotoRecCarverOutputParser { if (numberOfFiles == 0) { return null; } + String fileName; + Long fileSize; NodeList fileNames; NodeList fileSizes; NodeList fileRanges; Element entry; + Path filePath; FileManager fileManager = Case.getCurrentCase().getServices().getFileManager(); // create and initialize the list to put into the database @@ -107,6 +111,13 @@ class PhotoRecCarverOutputParser { fileSizes = entry.getElementsByTagName("filesize"); //NON-NLS fileRanges = entry.getElementsByTagName("byte_run"); //NON-NLS + fileSize=Long.parseLong(fileSizes.item(0).getTextContent()); + fileName=fileNames.item(0).getTextContent(); + filePath = Paths.get(fileName); + if (filePath.startsWith(basePath)) { + fileName = filePath.getFileName().toString(); + } + List tskRanges = new ArrayList<>(); for (int rangeIndex = 0; rangeIndex < fileRanges.getLength(); ++rangeIndex) { Long img_offset = Long.parseLong(((Element) fileRanges.item(rangeIndex)).getAttribute("img_offset")); //NON-NLS @@ -114,8 +125,7 @@ class PhotoRecCarverOutputParser { tskRanges.add(new TskFileRange(af.convertToImgOffset(img_offset), len, rangeIndex)); } carvedFileContainer.add( - new CarvedFileContainer(fileNames.item(0).getTextContent(), Long.parseLong(fileSizes.item(0).getTextContent()), - id, tskRanges)); + new CarvedFileContainer(fileName, fileSize, id, tskRanges)); } return fileManager.addCarvedFiles(carvedFileContainer); }