我正在尝试使用EmbeddedObjects提取附件,我能够提取附件但在系统临时文件夹中创建em * tm临时文件。
EmbeddedObject embeddedObject=document.getAttachment(attachmentName);
InputStream inputStream=embeddedObject.getInputStream();
.....
......
inputStream.close();
embeddedObject..recycle();
document..recycle();
关闭输入后,流不删除临时文件系统临时文件夹。 我的代码或莲花笔记的设置问题是否有任何问题。
你能帮帮我吗?
感谢您的帮助。
答案 0 :(得分:3)
这是一个常见问题,它与对象的错误关闭/回收(缺失或不按顺序)有关。 E0 * TM文件将在对象处于活动状态时创建,并在回收时进行清理。
如果它们是正确的,请检查运行的任何防病毒软件是否阻止删除。
以下示例代码我之前用来测试它,所以请与您的代码进行比较。
try {
System.out.println("Start");
String path = "test.txt";
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
System.out.println("Get DB");
Database db = session.getCurrentDatabase();
System.out.println("View + doc");
View vw = db.getView("main");
Document doc = vw.getFirstDocument();
System.out.println("Embedded object");
EmbeddedObject att = doc.getAttachment(path);
InputStream is = att.getInputStream();
ByteArrayOutputStream fos = new ByteArrayOutputStream();
byte buffer[] = new byte[(int) att.getFileSize()];
int read;
do {
read = is.read(buffer, 0, buffer.length);
if (read > 0) {
fos.write(buffer, 0, read);
}
} while (read > -1);
fos.close();
is.close();
// recycle the domino variables
doc.recycle();
vw.recycle();
db.recycle();
att.recycle();
} catch (Exception e) {
e.printStackTrace();
}