whitespace (3 spaces and tabs to 4 spaces)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1751179 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
c54deaf3ff
commit
227ae30154
@ -34,81 +34,81 @@ import org.apache.poi.hsmf.datatypes.MAPIProperty;
|
|||||||
* from a HMEF/TNEF/winmail.dat file
|
* from a HMEF/TNEF/winmail.dat file
|
||||||
*/
|
*/
|
||||||
public final class HMEFContentsExtractor {
|
public final class HMEFContentsExtractor {
|
||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
if(args.length < 2) {
|
if (args.length < 2) {
|
||||||
System.err.println("Use:");
|
System.err.println("Use:");
|
||||||
System.err.println(" HMEFContentsExtractor <filename> <output dir>");
|
System.err.println(" HMEFContentsExtractor <filename> <output dir>");
|
||||||
System.err.println("");
|
System.err.println("");
|
||||||
System.err.println("");
|
System.err.println("");
|
||||||
System.err.println("Where <filename> is the winmail.dat file to extract,");
|
System.err.println("Where <filename> is the winmail.dat file to extract,");
|
||||||
System.err.println(" and <output dir> is where to place the extracted files");
|
System.err.println(" and <output dir> is where to place the extracted files");
|
||||||
System.exit(2);
|
System.exit(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
HMEFContentsExtractor ext = new HMEFContentsExtractor(new File(args[0]));
|
HMEFContentsExtractor ext = new HMEFContentsExtractor(new File(args[0]));
|
||||||
|
|
||||||
File dir = new File(args[1]);
|
File dir = new File(args[1]);
|
||||||
File rtf = new File(dir, "message.rtf");
|
File rtf = new File(dir, "message.rtf");
|
||||||
if(! dir.exists()) {
|
if (! dir.exists()) {
|
||||||
throw new FileNotFoundException("Output directory " + dir.getName() + " not found");
|
throw new FileNotFoundException("Output directory " + dir.getName() + " not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.println("Extracting...");
|
System.out.println("Extracting...");
|
||||||
ext.extractMessageBody(rtf);
|
ext.extractMessageBody(rtf);
|
||||||
ext.extractAttachments(dir);
|
ext.extractAttachments(dir);
|
||||||
System.out.println("Extraction completed");
|
System.out.println("Extraction completed");
|
||||||
}
|
}
|
||||||
|
|
||||||
private HMEFMessage message;
|
private HMEFMessage message;
|
||||||
public HMEFContentsExtractor(File filename) throws IOException {
|
public HMEFContentsExtractor(File filename) throws IOException {
|
||||||
this(new HMEFMessage(new FileInputStream(filename)));
|
this(new HMEFMessage(new FileInputStream(filename)));
|
||||||
}
|
}
|
||||||
public HMEFContentsExtractor(HMEFMessage message) {
|
public HMEFContentsExtractor(HMEFMessage message) {
|
||||||
this.message = message;
|
this.message = message;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extracts the RTF message body to the supplied file
|
* Extracts the RTF message body to the supplied file
|
||||||
*/
|
*/
|
||||||
public void extractMessageBody(File dest) throws IOException {
|
public void extractMessageBody(File dest) throws IOException {
|
||||||
OutputStream fout = new FileOutputStream(dest);
|
OutputStream fout = new FileOutputStream(dest);
|
||||||
try {
|
try {
|
||||||
MAPIRtfAttribute body = (MAPIRtfAttribute)
|
MAPIRtfAttribute body = (MAPIRtfAttribute)
|
||||||
message.getMessageMAPIAttribute(MAPIProperty.RTF_COMPRESSED);
|
message.getMessageMAPIAttribute(MAPIProperty.RTF_COMPRESSED);
|
||||||
fout.write(body.getData());
|
fout.write(body.getData());
|
||||||
} finally {
|
} finally {
|
||||||
fout.close();
|
fout.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extracts all the message attachments to the supplied directory
|
* Extracts all the message attachments to the supplied directory
|
||||||
*/
|
*/
|
||||||
public void extractAttachments(File dir) throws IOException {
|
public void extractAttachments(File dir) throws IOException {
|
||||||
int count = 0;
|
int count = 0;
|
||||||
for(Attachment att : message.getAttachments()) {
|
for(Attachment att : message.getAttachments()) {
|
||||||
count++;
|
count++;
|
||||||
|
|
||||||
// Decide what to call it
|
// Decide what to call it
|
||||||
String filename = att.getLongFilename();
|
String filename = att.getLongFilename();
|
||||||
if(filename == null || filename.length() == 0) {
|
if(filename == null || filename.length() == 0) {
|
||||||
filename = att.getFilename();
|
filename = att.getFilename();
|
||||||
}
|
}
|
||||||
if(filename == null || filename.length() == 0) {
|
if(filename == null || filename.length() == 0) {
|
||||||
filename = "attachment" + count;
|
filename = "attachment" + count;
|
||||||
if(att.getExtension() != null) {
|
if(att.getExtension() != null) {
|
||||||
filename += att.getExtension();
|
filename += att.getExtension();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Save it
|
// Save it
|
||||||
File file = new File(dir, filename);
|
File file = new File(dir, filename);
|
||||||
OutputStream fout = new FileOutputStream(file);
|
OutputStream fout = new FileOutputStream(file);
|
||||||
try {
|
try {
|
||||||
fout.write( att.getContents() );
|
fout.write( att.getContents() );
|
||||||
} finally {
|
} finally {
|
||||||
fout.close();
|
fout.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user