Node之创建与读取目录

2019-12-28  本文已影响0人  27亿光年中的小小尘埃

创建目录

在fs模块中,可以使用mkdir方法创建目录

fs.mkdir(path,[mode],callback

同步创建目录

fs.mkdirSync(path,[mode])

读取目录

在fs模块中,可以使用readdir方法读取目录

fs.readdir(path,callback)

同步读取

fs.readdirSync(path)

查看文件或目录的信息

在fs模块中,可以使用stat方法或lstat方法查看一个文件或目录的信息。这两个方法的唯一区别是当查看符号链接文件的信息时,必须使用lstat方法。

fs.stat(path, callback)
fs.lstat(path, callback)

var stats=fs.statSync(path)
var stats=fs.lstatSync(path)

在使用open方法或openSync方法打开文件并返回文件描述符后,可以使用fs模块中的fstat方法查询被打开的文件信息

fs.fstat(fd, callback)

同步

fs.fstatSync(fd)

检查文件或目录是否存在

在fs模块中,可以使用exists方法检查一个文件或目录是否存在

异步方法:

fs.exists(path, callback)

同步方法:

var exists=fs.existsSync(path)

获取文件或目录的绝对路径

在fs模块中,可以使用realpath方法获取一个文件或目录的绝对路径。

异步方法:

fs.realpath(path,[cache],callback)

示例:

var cache = {'/etc':'/private/etc'};
fs.realpath('/etc/passwd',cache,function(err,resolvedPath) {
//
回调函数代码略
});

同步方式:

var resolvedPath=fs.realpathSync(path,[cache]

修改文件访问时间及修改时间

在fs模块中,可以使用utimes方法修改文件的访问时间及修改时间。

fs.utimes(path,atime,mtime,callback)

示例:

var fs=require('fs');
fs.utimes('./message.txt',new Date(),new Date(),function(err){
    if(err) console.log("
    修改文件时间操作失败。");
    console.log("
    修改文件时间操作成功。");
});

同步方式:

fs.utimesSync(path,atime,mtime)

在使用open方法或openSync方法打开文件并返回文件描述符后,可以使用fs模块中的futimes方法修改文件的访问时间或修改时间

fs.futimes(fd,atime,mtime,callback)
fs.futimesSync(fd,atime,mtime

修改文件或目录的读写权限

在fs模块中,可以使用chmod方法修改文件或目录的读写权限

fs.chmod(path, mode, callba

示例:

var fs=require('fs');
// 0600
代表所有者可读写,其他人没有任何权限
fs.chmod('./message1.txt',0600,function(err){
    if(err) console.log("
    修改文件权限操作失败。");
    else console.log("
    修改文件权限操作成功。");
});

同步方法:

fs.chmodSync(path, mode)

在使用open方法或openSync方法打开文件并返回文件描述符后,可以使用fs模块中的fchmod方法修改文件的读写权限

fs.fchmod(fd,mode,callback)
fs.fchmodSync(fd,mode)

移动文件或目录

在fs模块中,可以使用rename方法移动文件或目录,当移动后的路径与原路径为同一路径,而移动后的文件名或目录名与原文件名或目录名不同时,则执行文件或目录的重命名操作。

fs.rename(oldPath,newPath,callback)

同步方法:

fs.renameSync(oldPath,newPath)

创建与删除文件的硬链接

在fs模块中,可以使用link方法创建文件的硬链接

fs.link(srcpath,dstpath,callback)
var fs=require('fs');
fs.link('./message.txt','./test/test.txt',function(err){
    if(err) console.log('
    创建硬链接操作失败。');
    else console.log('
    创建硬链接操作成功。');
});

同步方法:

fs.linkSync(srcpath,dstpath)

删除硬链接

在fs模块中,可以使用unlink方法删除文件的硬链接。

fs.unlink(path,callback)

同步方法:

fs.unlinkSync(path)

创建与查看符号链接

在操作系统中,可以为文件或目录创建一个或多个符号链接。所谓符号链接,是一种特殊的文件,这个文件中仅包含了另一个文件或目录的路径及文件名或目录名。如果打开一个文件的符号链接文件进行编辑,操作系统将自动打开符号链接中所指向的原文件进行编辑,如果打开一个目录的符号链接文件进行文件的创建、编辑或删除操作,则操作系统将自动打开符号链接中所指向的原目录并执行相应的操作。如果删除符号链接文件,不会删除原文件或目录,如果删除或移动原文件或目录,符号链接文件也不会被删除,这时产生一种称为“断链”的现象。

在fs模块中,可以使用symlink方法来创建文件或目录的符号链接

fs.symlink(srcpath,dstpath,[type],callback)

同步方法:

fs.symlinkSync(srcpath,dstpath,[type])

读取符号链接中所包含的另一个文件或目录的路径及文件名或目录名

fs.readlink(path,callback)

同步方法:

var linkString=fs.readlinkSync(path)

截断文件

在fs模块中,可以使用truncate方法对文件进行截断操作(所谓对文件进行截断操作,是指一种首先清除文件内容,然后修改文件尺寸的操作)

fs.truncate(filename,len,callback)

同步方法:

fs.truncateSync(filename,len)

删除空目录

在fs模块中,可以使用rmdir方法删除空目录

fs.rmdir(path,callback)

同步方法:

fs.rmdirSync(path)

监视文件或目录

在fs模块中,可以使用watchFile方法对文件进行监视,并且在监视到文件被修改时执行某些处理

fs.watchFile(filename,[options],listener)
var fs=require('fs');
fs.watchFile('./message.txt',function(curr, prev) {
    if(Date.parse(prev.ctime)==0)
    console.log('message.txt文件被创建。');
    else if(Date.parse(curr.ctime)==0)
    console.log('message.txt文件被删除。');
    else if(Date.parse(prev.mtime)!=Date.parse(curr.mtime))
    console.log('message.txt文件内容被修改。');
});

取消监听

fs.unwatchFile(filename,[listener])

在fs模块中,可以使用watch方法对文件或目录进行监视,并且在监视到文件或目录被修改时执行某些处理

var watcher=fs.watch(filename,[options],[listener])

与监听文件参数一样

watch方法返回一个fs.FSWatcher对象,该对象拥有一个close方法,用于停止对watch方法中指定监视的文件或目录所执行的监视操作。

watcher.close()
上一篇下一篇

猜你喜欢

热点阅读