gpt4 book ai didi

lotus-notes - 使用 EmbeddedObject 从 lotus notes api 中提取附件,在系统文件夹中创建 eo*tm 文件

转载 作者:行者123 更新时间:2023-12-01 12:50:47 25 4
gpt4 key购买 nike

我正在尝试使用 EmbeddedObjects 提取附件,我能够提取附件但在系统临时文件夹中创建 em*tm 临时文件。

 EmbeddedObject embeddedObject=document.getAttachment(attachmentName);
InputStream inputStream=embeddedObject.getInputStream();
.....
......
inputStream.close();
embeddedObject..recycle();
document..recycle();

关闭输入流后,它不会从系统临时文件夹中删除临时文件。是我的代码有问题还是 Lotus Notes 的设置问题?

你能帮我做这件事吗?

感谢您的帮助。

最佳答案

这是一个常见问题,它与对象的不正确关闭/回收(丢失或乱序)有关。 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();
}

关于lotus-notes - 使用 EmbeddedObject 从 lotus notes api 中提取附件,在系统文件夹中创建 eo*tm 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12516858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com