【发布时间】:2012-01-07 13:02:38
【问题描述】:
我正在尝试找到一种方法来跟踪文件,即使它们在文件系统中被移动或重命名。
我的一个想法是在 Java 7 中使用新的 UserDefinedFileAttributeView 并创建一个自定义文件属性作为一种自定义 id。我认为这可能适用于不同的平台(主要是 Windows 和 Mac)。但我无法让它工作。甚至尝试this page 上的示例,当我到达这一行时:
UserDefinedFileAttributeView view = Files.getFileAttributeView(file, UserDefinedFileAttributeView.class);
我只得到视图变量的空值,然后程序因空指针异常而停止。
然后我发现至少对于 Mac 来说有一种更简单的方法可以做到这一点:使用 BasicFileAttributes fileKey 属性。我试过了,即使我移动文件或重命名它,fileKey 似乎也保持不变。然而,它也说这个功能依赖于平台,我记得在某处读到它在 Windows 上不起作用......
首先,fileKey 方法是在 Mac 上执行此操作的稳定方法吗?如果是这样,我可以为 Windows 的相同功能做些什么?任何人都知道为什么我在 UserDefinedFileAttributeView 上得到空值?因为如果我能让它工作,我猜它应该是跨平台的。
这不是需要超级健壮和可扩展的东西,它只是我正在开发的一个小助手应用程序,但它至少需要在移动或重命名时识别文件时可靠......
【问题讨论】:
标签: windows macos java-7 file-attributes