在fs模塊中,可以使用stat方法或lstat方法查看一個文件或目錄信息。當查看符號鏈接文件的信息時,必須使用lstat方法。
一、異步方法
1.語法
fs.stat(path, callback);
fs.lstat(path, callback);
2.參數
(1)path:用於指定需要被查看的文件或目錄的完整路徑及文件名或目錄名;
(2)callback:用於指定查看文件或目錄信息操作完畢時執行的回調函數,方法如下:
function(err, stats){ …… }。
(2-1)參數:
err:查看文件或目錄信息操作失敗時觸發的錯誤對象;
stats:一個fs.Stats對象。
(2-2)該對象具有如下一些方法:
☛ isFile:用於判斷被查看的對象是否為一個文件,如果是返回true,否則,返回false;
☛ isDirectory:用於判斷被查看的對象是否為一個目錄,如果是的話則返回true,否則,返回false;
☛ isBlockDevice:用於判斷被查看的文件是否為一個塊設備文件,如果是的話則返回true,否則,返回false(僅在Unix操作系統下有效);
☛ isCharacterDevice:用於判斷被查看的文件是否為一個字符設備文件,如果是的話則返回true,否則,返回false(僅在Unix操作系統下有效);
☛ isSymbolicLink:用於判斷被查看的文件是否為一個符號鏈接文件,如果是的話則返回true,否則,返回false。該方法僅在lstat方法的回調函數中有效;
☛ isFIFO:用於判斷被查看的文件是否為一個FIFO,如果是的話則返回true,否則,返回false(僅在Unix操作系統下有效);
☛ isSocket:用於判斷被查看的文件是否為一個socket文件,如果是的話則返回true,否則,返回false(僅在Unix操作系統下有效);
(2-3)該對象具有如下一些屬性:
☛ dev:該屬性值為文件或者目錄所在設備ID,該屬性值僅在Unix操作系統下有效;
☛ ino:該屬性值為文件或者目錄的索引編號,該屬性值僅在Unix操作系統下有效;
☛ mode:該屬性值為使用數值形式代表的文件或目錄的權限標志;
☛ nlink:該屬性值為文件或者目錄的硬連接數量;
☛ uid:該屬性值為文件或者目錄的所有者的用戶ID,該屬性值僅在Unix操作系統下有效;
☛ gid:該屬性值為文件或目錄的所有者的組ID,該屬性值僅在Unix操作系統下有效;
☛ rdev:該屬性值為字符設備文件或塊設備文件所在設備ID,該屬性值僅在Unix操作系統下有效;
☛ size:該屬性值為文件尺寸(即文件中的字節數);
☛ atime:該屬性值為文件的訪問時間;
☛ mtime:該屬性值為文件的修改時間;
☛ ctime:該屬性值為文件的創建時間;
var fs = require('fs'); fs.stat( './server.js',function(err, stats){ console.log(stats); });
運行結果:
二、同步方式
在使用同步方式查看文件信息時,可以使用fs模塊中的statSync方法或lstatSync方法。
1.語法
var mystat = fs.statSync(path);
var mystat = fs.lstatSync(path);
2.參數
path:用於指定需要被查看的文件或者目錄的完整路徑及文件名或目錄名。
該方法返回存放了文件信息的fs.Stats對象。
三、fstat/fstatSync
在使用open或者openSync方法打開文件並返回文件描述符后,可以使用可以使用fs模塊中的fstat或者fstatSync方法查詢被打開的文件信息。
1、語法
fs.fstat( fd, callback );
var mystat = fs.fstatSync( fd ); //該方法返回存放了文件信息的fs.Stats對象
2、參數
fd:參數值必須為打開文件時返回的文件描述符;
callback:用於指定查看文件或目錄信息操作完畢時執行的回調函數,該回調函數的指定方法與stat方法的第二個參數值回調函數完全相同;