java inode标识符
brucelwl 人气:0java获取文件的inode标识符,如果文件被删除或者重命名,inode的值会发生变更,因此可以在第一次加载File之后记录inode,后续校验inode的值来判断文件是否被删除、重命名或重新创建等。
方法1
import java.io.File; import java.nio.file.Files; import java.nio.file.attribute.BasicFileAttributeView; import java.nio.file.attribute.BasicFileAttributes; /** * Created by bruce on 2022/3/27 21:39 */ public class FileInodeReaderTest { public static void main(String[] args) { File file = new File("/logs/csp/sentinel-block.log"); try { BasicFileAttributeView basicview = Files.getFileAttributeView(file.toPath(), BasicFileAttributeView.class); BasicFileAttributes attr = basicview.readAttributes(); System.out.println("attr.fileKey():" + attr.fileKey() + " attr.creationTime:" + attr.creationTime() + " attr.lastModifiedTime:" + attr.lastModifiedTime()); } catch (Exception ex) { System.out.println(ex.getMessage()); } } }
方法2
import java.io.File; import java.nio.file.Files; /** * Created by bruce on 2022/3/27 21:39 */ public class FileInodeReaderTest { public static void main(String[] args) { File file = new File("/logs/csp/sentinel-block.log"); try { Object inode = Files.getAttribute(file.toPath(), "unix:ino"); System.out.println("inode->" + inode); } catch (Exception ex) { System.out.println(ex.getMessage()); } } }
补充:Java INode类代码示例
INode类属于org.jbpt.petri包,在下文中一共展示了INode类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: getRefinedBondType
import org.jbpt.petri.INode; //导入依赖的package包/类 @Override public WFTreeBondType getRefinedBondType(IRPSTNode<F,N> node) { if (node.getType()!=TCType.BOND) return WFTreeBondType.UNDEFINED; else { WFTreeBondType type = this.bond2type.get(node); if (type!=null) return type; else { INode entry = node.getEntry(); INode exit = node.getExit(); if (entry==null || exit == null) return WFTreeBondType.UNDEFINED; for (IRPSTNode<F,N> child : this.getChildren(node)) { if (child.getEntry().equals(node.getExit())) { type = WFTreeBondType.LOOP; this.bond2type.put(node,type); return type; } } if (entry instanceof ITransition && exit instanceof ITransition) { type = WFTreeBondType.TRANSITION_BORDERED; this.bond2type.put(node,type); return type; if (entry instanceof IPlace && exit instanceof IPlace) { type = WFTreeBondType.PLACE_BORDERED; return WFTreeBondType.UNDEFINED; } } }
加载全部内容