对于我正在从事的项目,我需要找到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对象。

08-25 09:02