我正在使用 Lotus Domino 服务器 8.5.2。使用 Java 调度代理,我可以将几个 Lotus Domino 文档的附件提取到文件系统中(win 32)。想法是提取后我需要向文件添加一些元数据并将文件上传到另一个系统。
有人知道,或者可以给我一些提示(最好使用 Java)我如何将一些元数据写入提取的文件?我需要添加一些关键字,更改作者,等等。我了解Lotus Domino 8.5.2 支持 Java 6
谢谢你!
亚历克斯。
我正在使用 Lotus Domino 服务器 8.5.2。使用 Java 调度代理,我可以将几个 Lotus Domino 文档的附件提取到文件系统中(win 32)。想法是提取后我需要向文件添加一些元数据并将文件上传到另一个系统。
有人知道,或者可以给我一些提示(最好使用 Java)我如何将一些元数据写入提取的文件?我需要添加一些关键字,更改作者,等等。我了解Lotus Domino 8.5.2 支持 Java 6
谢谢你!
亚历克斯。
根据这个答案,Java 7 具有操作 Windows 元数据的本机能力,但 Java 6 没有。
它确实说您可以使用 Java Native Access (JNA) 来调用本地 DLL,这意味着您应该能够使用dsofile.dll来操作元数据。此处使用 JNA 从 msvcrt.dll 访问“puts”函数的示例(找不到任何特定于 dsofile.dll 的示例):
界面
package CInterface;
import com.sun.jna.Library;
public interface CInterface extends Library
{
public int puts(String str);
}
示例类
// JNA Demo. Scriptol.com
package CInterface;
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Platform;
public class hello
{
public static void main(String[] args)
{
String mytext = "Hello World!";
if (args.length != 1)
{
System.err.println("You can enter your own text between quotes...");
System.err.println("Syntax: java -jar /jna/dist/demo.jar \"myowntext\"");
}
else
mytext = args[0];
// Library is c for unix and msvcrt for windows
String libName = "c";
if (System.getProperty("os.name").contains("Windows"))
{
libName = "msvcrt";
}
// Loading dynamically the library
CInterface demo = (CInterface) Native.loadLibrary(libName, CInterface.class);
demo.puts(mytext);
}
}