日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(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ù):3237次

熟習Linux操作系統(tǒng)的同學應(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)站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 国产精品免费观看视频 | 国产福利91精品一区二区三区 | 亚洲久久久 | 亚洲欧美久久 | 欧美成网站 | 在线免费观看污 | 精品国产一区二区三区免费 | 欧美xxxx黑人又粗又长密月 | 日韩欧美一区二区三区 | 国产一区二区三区观看 | 福利视频1000 | 韩国日本美国免费毛片 | 理论片在线看片三免费 | 久久国产欧美一区二区免费 | 国产一区福利 | 日韩视频一区二区三区 | 色在线免费 | 日韩一区二区在线视频 | 污视频在线 | 91久久国产综合久久91精品网站 | 国产一区二区免费看 | 精品国产日韩欧美 | 成人一区视频 | 夜夜春精品 | 综合久久久久久久 | 国产一卡久久电影永久 | 亚洲影视一区 | 99视频精品在线 | 免费看黄a | 国产伦精品一区二区免费 | 欧美亚洲高清 | 精品国产黄色片 | 亚洲欧美成人网 | 国产精品久久久久免费视频 | 精品成人 | 午夜精品福利一区二区三区蜜桃 | 精品一区二区三区中文字幕 | 亚洲精品福利电影 | 国产精品电影在线观看 | 免费成人一级片 | 亚洲午夜小视频 |