如何fs.stat()的作品?
如果你想使用一個回調/異步FS功能,不使用同步版本,使用fs.stat():
var fs = require('fs');
console.log("+++++++++++++++++++++++++++++++++++++++");
fs.stat(pathname, function(err, stats) {
console.log(stats.isDirectory());
});
console.log("+++++++++++++++++++++++++++++++++++++++");
有關於fs.stat()的更多信息。你可以得到很多信息有關的主要對象:
fs.stat(path, function(err, stats) {
console.log(stats)
}
輸出:
{ dev: 2049,
ino: 305352,
mode: 16877,
nlink: 12,
uid: 1000,
gid: 1000,
rdev: 0,
size: 4096,
blksize: 4096,
blocks: 8,
atime: '2009-06-29T11:11:55Z',
mtime: '2009-06-29T11:11:40Z',
ctime: '2009-06-29T11:11:40Z' }
很多元素往往是無用的對我們來說,是的。但這裏是所有這些變量的意義,according to this article:
- 開發:包含文件的設備的 ID
- 模式:文件保護
- NLINK:數量的硬鏈接到文件
- uid:文件所有者的用戶標識。
- gid:文件所有者的組ID。
- rdev:設備ID,如果該文件是一個特殊文件。
- blksize:文件系統I/O的塊大小。
- ino:文件inode號碼。 inode是一個文件系統數據結構 -
- 存儲有關文件的信息。
- 大小:文件總大小(以字節爲單位)。
- blocks:爲文件分配的塊數。
- 的atime:代表文件的最後訪問時間日期對象。
- 的mtime:代表文件的最後修改時間日期對象。
- 的ctime:代表最後時刻的文件的inode改變日期對象。
你也可以像nodeJS documentation says,獲得更多的信息,如:
stats.isFile()
stats.isDirectory()
stats.isBlockDevice()
stats.isSymbolicLink() (only valid with fs.lstat())
stats.isCharacterDevice()
stats.isFIFO()
stats.isSocket()
關於stats.isSymbolicLink(),還有比fs.stat另一個函數,稱爲fs.lstat(),並在這裏是它們之間的差異:
stat
遵循符號鏈接。當給定一個符號鏈接路徑時,它將返回符號鏈接目標的統計信息。
lstat
不符合符號鏈接。當給定一個符號鏈接的路徑時,它將返回符號鏈接的統計信息,而不是其目標。
優秀的,謝謝! – 2011-12-20 21:28:39