如何读取文件:属性 > 详细信息 > 内容 > 页面,例如 Word 文档

3
当你在Windows上右键单击任何文件时,可以在菜单中选择“属性”。 在即将出现的对话框中,你会看到一个标签:“详细信息”。 在那里,你可以找到许多属性(名称,类型,所有者...)! 我的问题是: 我如何读取此文件属性? 我尝试了几年前,但对我来说是不可能的。 我认为使用Java 1.7可能是可能的。 我尝试了UserDefinedAttributeView,但它不起作用。
我尝试了以下:我在详细选项卡中看到“文件”部分和属性“名称”。 但是,如果我执行下面的代码,我会得到一个异常:
``` Exception in thread "main" java.nio.file.NoSuchFileException: D:\test.txt:File.Name ```
而text.txt存在;)
    Path path = new File("D:\\test.txt").toPath();        
    UserDefinedFileAttributeView view = Files.getFileAttributeView(path,   UserDefinedFileAttributeView.class);
    String name = "File.Name";
    ByteBuffer buf = ByteBuffer.allocate(view.size(name));        
    view.read(name, buf);
    buf.flip();
    String value = Charset.defaultCharset().decode(buf).toString();

非常感谢您的支持!
2个回答

0

我曾经遇到过类似的问题,我通过将新属性命名为“user”并使用相同的字符串“user”获取它来解决了这个问题。我不确定“File.”是否有效,无论如何,您可以通过命令“view.list().toString()”检查用户定义的属性列表。

希望能对您有所帮助(即使有点晚了...)


0

我认为你的问题不是找不到test.txt,而是找不到File.Name。你的代码片段中有....view.size(name),其中name = "File.Name" - 因此它试图查找文件File.Name的大小,但没有找到。这是因为你不打算让File.Name成为文件名,而是打算让它成为你要查找的属性名称。

(话虽如此,我也在尝试寻找一个适用于从Java程序中获取详细信息选项卡中属性值的解决方案...到目前为止,我发现所有的方法都需要使用JNA。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接