对于我正在从事的项目,我需要找到iNode / FileID。它是操作系统中单个文件的唯一标识符,因此即使重命名或移动它们,我也可以跟踪它们。
建议我使用BasicFileAttributes :: fileKey来找到它,它应该可以正常工作。我的问题是我需要使用Java 6进行开发,而BasicFileAttributes需要Java 7。
不幸的是,使用Java 7根本不是一种选择,那么有人对可以提供相同功能的外部库有任何建议吗?
还提到我可以使用命令提示符(我使用Windows 7)做一些脚本来尝试找到它。
感谢您提供的所有帮助/建议。
最佳答案
这是我想到的实现:
public static class FileKey {
private File file;
public FileKey(File file) {
this.file=file;
}
@Override
public int hashCode() {
long res = file.length();
res+=file.lastModified();
if(file.isHidden())
res+=2;
if(file.isDirectory()) {
res+=3;
}
return (int) res;
}
@Override
public boolean equals(Object dst) {
if(dst instanceof FileKey) {
int dstHashCode = ((FileKey) dst).hashCode();
return dstHashCode == this.hashCode();
}
return false;
}
}
只需将其用作fileKey对象。