mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-15 17:27:43 +00:00
Update Photorec XML parsing to clip paths from filenames
This commit is contained in:
parent
5cc1e7f685
commit
dfb81d9ac5
@ -22,6 +22,7 @@ import java.io.File;
|
|||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
|
import java.nio.file.Paths;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -92,10 +93,13 @@ class PhotoRecCarverOutputParser {
|
|||||||
if (numberOfFiles == 0) {
|
if (numberOfFiles == 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
String fileName;
|
||||||
|
Long fileSize;
|
||||||
NodeList fileNames;
|
NodeList fileNames;
|
||||||
NodeList fileSizes;
|
NodeList fileSizes;
|
||||||
NodeList fileRanges;
|
NodeList fileRanges;
|
||||||
Element entry;
|
Element entry;
|
||||||
|
Path filePath;
|
||||||
FileManager fileManager = Case.getCurrentCase().getServices().getFileManager();
|
FileManager fileManager = Case.getCurrentCase().getServices().getFileManager();
|
||||||
|
|
||||||
// create and initialize the list to put into the database
|
// create and initialize the list to put into the database
|
||||||
@ -107,6 +111,13 @@ class PhotoRecCarverOutputParser {
|
|||||||
fileSizes = entry.getElementsByTagName("filesize"); //NON-NLS
|
fileSizes = entry.getElementsByTagName("filesize"); //NON-NLS
|
||||||
fileRanges = entry.getElementsByTagName("byte_run"); //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<TskFileRange> tskRanges = new ArrayList<>();
|
List<TskFileRange> tskRanges = new ArrayList<>();
|
||||||
for (int rangeIndex = 0; rangeIndex < fileRanges.getLength(); ++rangeIndex) {
|
for (int rangeIndex = 0; rangeIndex < fileRanges.getLength(); ++rangeIndex) {
|
||||||
Long img_offset = Long.parseLong(((Element) fileRanges.item(rangeIndex)).getAttribute("img_offset")); //NON-NLS
|
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));
|
tskRanges.add(new TskFileRange(af.convertToImgOffset(img_offset), len, rangeIndex));
|
||||||
}
|
}
|
||||||
carvedFileContainer.add(
|
carvedFileContainer.add(
|
||||||
new CarvedFileContainer(fileNames.item(0).getTextContent(), Long.parseLong(fileSizes.item(0).getTextContent()),
|
new CarvedFileContainer(fileName, fileSize, id, tskRanges));
|
||||||
id, tskRanges));
|
|
||||||
}
|
}
|
||||||
return fileManager.addCarvedFiles(carvedFileContainer);
|
return fileManager.addCarvedFiles(carvedFileContainer);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user