19 package org.sleuthkit.datamodel;
21 import java.util.List;
22 import java.util.logging.Level;
23 import java.util.logging.Logger;
54 super(db, objId,
TSK_FS_ATTR_TYPE_ENUM.
TSK_FS_ATTR_TYPE_DEFAULT, (
short) 0, name, fileType, 0L, 0, dirType, metaType, dirFlag, metaFlags, size, 0L, 0L, 0L, 0L, (
short) 0, 0, 0, md5Hash, knownState, parentPath);
68 Logger.getLogger(
LayoutFile.class.
getName()).log(Level.INFO,
"Error getting layout content ranges for size", ex);
92 calcSize += range.getByteLen();
95 Logger.getLogger(
LayoutFile.class.
getName()).log(Level.SEVERE,
"Error calculating layout file size from ranges", ex);
107 long offsetInThisLayoutContent = 0;
110 if (imageHandle == -1) {
112 if ((dataSource != null) && (dataSource instanceof
Image)) {
113 Image image = (Image) dataSource;
121 if (bytesRead < len) {
122 if (offset < offsetInThisLayoutContent + range.getByteLen()) {
123 long offsetInRange = 0;
124 if (bytesRead == 0) {
125 offsetInRange = offset - offsetInThisLayoutContent;
127 long offsetInImage = range.getByteStart() + offsetInRange;
128 long lenToRead = Math.min(range.getByteLen() - offsetInRange, len - bytesRead);
129 int lenRead =
readImgToOffset(imageHandle, buf, bytesRead, offsetInImage, (
int) lenToRead);
130 bytesRead += lenRead;
131 if (lenToRead != lenRead) {
135 offsetInThisLayoutContent += range.getByteLen();
153 byte[] currentBuffer =
new byte[lenToRead];
155 System.arraycopy(currentBuffer, 0, buf, offsetInBuf, lenToRead);
161 return v.
visit(
this);
165 public <T> T accept(SleuthkitItemVisitor<T> v) {
166 return v.visit(
this);
176 return super.toString(preserveState) +
"LayoutFile [\t" +
"]\t";
final TSK_FS_NAME_TYPE_ENUM dirType
static int readImg(long imgHandle, byte[] readBuffer, long offset, long len)
final TSK_FS_NAME_FLAG_ENUM dirFlag
final TskData.TSK_DB_FILES_TYPE_ENUM fileType
String toString(boolean preserveState)
List< Content > getChildren()
List< Long > getChildrenIds()
LayoutFile(SleuthkitCase db, long objId, String name, TSK_DB_FILES_TYPE_ENUM fileType, TSK_FS_NAME_TYPE_ENUM dirType, TSK_FS_META_TYPE_ENUM metaType, TSK_FS_NAME_FLAG_ENUM dirFlag, short metaFlags, long size, String md5Hash, FileKnown knownState, String parentPath)
final Set< TSK_FS_META_FLAG_ENUM > metaFlags
int readInt(byte[] buf, long offset, long len)
TskData.FileKnown knownState
SleuthkitCase getSleuthkitCase()
DERIVED
File derived from a parent file (i.e. from ZIP)
List< TskFileRange > getRanges()
int readImgToOffset(long imgHandle, byte[] buf, int offsetInBuf, long offsetInImage, int lenToRead)
final TSK_FS_META_TYPE_ENUM metaType
synchronized long getImageHandle()