19 package org.sleuthkit.autopsy.logicalimager.dsp;
22 import java.io.IOException;
23 import java.nio.file.Path;
24 import java.nio.file.Paths;
25 import java.util.ArrayList;
26 import java.util.List;
27 import java.util.logging.Level;
28 import org.apache.commons.io.FileUtils;
29 import org.openide.util.NbBundle.Messages;
44 final class AddLogicalImageTask
extends AddMultipleImageTask {
47 private final static String ALERT_TXT =
"alert.txt";
48 private final static String USERS_TXT =
"users.txt";
49 private final File src;
50 private final File dest;
54 AddLogicalImageTask(String deviceId,
55 List<String> imagePaths,
61 super(deviceId, imagePaths, timeZone, progressMonitor, callback);
64 this.progressMonitor = progressMonitor;
65 this.callback = callback;
74 "# {0} - src",
"# {1} - dest",
"AddLogicalImageTask.copyingImageFromTo=Copying image from {0} to {1}",
75 "AddLogicalImageTask.doneCopying=Done copying",
76 "# {0} - src",
"# {1} - dest",
"AddLogicalImageTask.failedToCopyDirectory=Failed to copy directory {0} to {1}",
77 "# {0} - file",
"AddLogicalImageTask.addingToReport=Adding {0} to report",
78 "# {0} - file",
"AddLogicalImageTask.doneAddingToReport=Done adding {0} to report"
82 List<String> errorList =
new ArrayList<>();
83 List<Content> emptyDataSources =
new ArrayList<>();
86 progressMonitor.
setProgressText(Bundle.AddLogicalImageTask_copyingImageFromTo(src.toString(), dest.toString()));
87 FileUtils.copyDirectory(src, dest);
88 progressMonitor.
setProgressText(Bundle.AddLogicalImageTask_doneCopying());
89 }
catch (IOException ex) {
91 String msg = Bundle.AddLogicalImageTask_failedToCopyDirectory(src.toString(), dest.toString());
93 logger.log(Level.SEVERE, String.format(
"Failed to copy directory {0} to {1}", src.toString(), dest.toString()));
99 progressMonitor.
setProgressText(Bundle.AddLogicalImageTask_addingToReport(ALERT_TXT));
100 String status = addReport(Paths.get(dest.toString(), ALERT_TXT), ALERT_TXT +
" " + src.getName());
101 if (status != null) {
102 errorList.add(status);
106 progressMonitor.
setProgressText(Bundle.AddLogicalImageTask_doneAddingToReport(ALERT_TXT));
108 progressMonitor.
setProgressText(Bundle.AddLogicalImageTask_addingToReport(USERS_TXT));
109 status = addReport(Paths.get(dest.toString(), USERS_TXT), USERS_TXT +
" " + src.getName());
110 if (status != null) {
111 errorList.add(status);
115 progressMonitor.
setProgressText(Bundle.AddLogicalImageTask_doneAddingToReport(USERS_TXT));
129 "# {0} - file",
"# {1} - exception message",
"AddLogicalImageTask.failedToAddReport=Failed to add report {0}. Reason= {1}"
131 private String addReport(Path reportPath, String reportName) {
132 if (!reportPath.toFile().exists()) {
138 }
catch (TskCoreException ex) {
139 String msg = Bundle.AddLogicalImageTask_failedToAddReport(reportPath.toString(), ex.getMessage());
140 logger.log(Level.SEVERE, String.format(
"Failed to add report {0}. Reason= {1}", reportPath.toString(), ex.getMessage()));
void setProgressText(String text)
void addReport(String localPath, String srcModuleName, String reportName)
void done(DataSourceProcessorResult result, List< String > errList, List< Content > newDataSources)
static Case getCurrentCase()
synchronized static Logger getLogger(String name)