多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > 互聯(lián)網(wǎng) > Java中如何獲得文件的inode信息

Java中如何獲得文件的inode信息

來源:程序員人生   發(fā)布時間:2015-01-26 09:24:06 閱讀次數(shù):3233次

熟習(xí)Linux操作系統(tǒng)的同學(xué)應(yīng)當知道Linux文件系統(tǒng)采取了inode - block的結(jié)構(gòu)來表示和存儲文件,inode包括了文件的元數(shù)據(jù)信息,block存儲實際的文件內(nèi)容。Linux把1切的IO都抽象成文件,那末目錄和普通文件1樣,也都是文件。每一個文件都有1個唯1的inode號。


可以用stat命令來查看1個文件的inode信息,比以下面這個文件 stat log.txt

可以看到Device是16777219d, inode號是1821216。這個文件內(nèi)容是空的,所以Blocks為0


把這個log.txt 重命名為log2.txt,再履行stat log2.txt,可以看到只有文件名變了,其他的inode號這些元數(shù)據(jù)都沒有變。



實際上普通文件的inode數(shù)據(jù)結(jié)構(gòu)只存儲1些元數(shù)據(jù),不存儲文件名的信息。那末文件名是存在哪里的呢,我們知道目錄也是1種文件,那末它也有inode和block。普通文件的block塊存儲的是文件內(nèi)容,目錄的block塊則存儲了該目錄下所有文件的inode號及對應(yīng)的文件名等信息。


所以重命名1個文件,只是修改了它所在目錄的目錄block中的文件名信息,不會對文件的inode結(jié)構(gòu)做任何修改。


既然inode這么有用,可以標識唯1的1個文件,那末Java如何獲得這個inode信息呢。由于常常會遇到判斷兩個文件是不是是同1個文件的場景。

Java NIO提供了1個BasicFileAttributes接口來取得文件的Inode信息。它提供了1個  fileKey()方法,返回1個Object,這個Object包括了文件的deviceid和 inode號,可以唯1的標識1個文件。


import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.attribute.BasicFileAttributes; public class INodeAttributes {        public static void main(String[] args) throws Exception {           Path path = Paths.get("/xxxxx/log.txt2");           BasicFileAttributes bfa = Files.readAttributes(path, BasicFileAttributes.class);                       System.out.println("Creation Time      : " + bfa.creationTime());           System.out.println("Last Access Time   : " + bfa.lastAccessTime());           System.out.println("Last Modified Time : " + bfa.lastModifiedTime());           System.out.println("Is Directory       : " + bfa.isDirectory());           System.out.println("Is Other           : " + bfa.isOther());           System.out.println("Is Regular File    : " + bfa.isRegularFile());           System.out.println("Is Symbolic Link   : " + bfa.isSymbolicLink());           System.out.println("Size               : " + bfa.size());           Object objectKey = bfa.fileKey();           System.out.println("Object Key               : " + bfa.fileKey());                   }     }

看到結(jié)果輸出的deviceid和inode號和用Linux stat命令返回的結(jié)果是1致的

Creation Time : 2015-01⑵1T03:20:41Z Last Access Time : 2015-01⑵1T03:38:01Z Last Modified Time : 2015-01⑵1T03:20:41Z Is Directory : false Is Other : false Is Regular File : true Is Symbolic Link : false Size : 0 Object Key : (dev=1000003,ino=1821216)


生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 亚洲欧美日本人成在线观看 | 免费一级毛片正在播放 | 国产亚洲一区在线 | 亚洲夜夜骑| 亚洲精品短视频 | 亚洲欧美在线观看首页 | 国产亚洲精品一区久久 | 亚洲国产一级毛片 | 可以看的毛片网站 | 一级黄色美女视频 | 亚洲欧洲日韩国产 | 宅男看片午夜大片啪啪mv | 欧美激情视频一区二区三区 | 亚洲经典激情春色另类 | 91手机看片国产福利精品 | 欧美日韩综合一区 | 毛片在线网址 | 欧美日本在线观看 | 福利午夜 | 久久精品免观看国产成人 | 日韩精品国产精品 | 欧美 日韩 中文字幕 | 高清不卡一区二区 | 欧美黑人粗暴另类多交 | www黄色免费| 精品久久久久久中文字幕女 | 激情一区二区三区 | 尤物国产视频 | 午夜小视频网站 | h网站在线观看 | 国产老肥熟xxxx | 日韩欧美色 | 69式免费视频 | 在线看片日韩 | 亚洲春色综合另类小说 | 亚洲欧洲自拍偷拍 | 操人视频免费 | 图片区小说校园 | 亚洲福利精品一区二区三区 | 久久久精品成人免费看 | 免费在线观看一级毛片 |