打开文件:
fs.open( path , flag [,mode] , callback) // callback第一个为错误对象,第二个为fd
fs.openSync ( path , flag[ , mode] )
flag: 'r' - 以读取模式打开文件。如果文件不存在则发生异常。
'r+' - 以读写模式打开文件。如果文件不存在则发生异常。
'rs+' - 以同步读写模式打开文件。命令操作系统绕过本地文件系统缓存。这对 NFS 挂载模式下打开文件很有用,因为它可以让你跳过潜在的旧本地缓存。 它对 I/O 的性能有明显的影响,所以除非需要,否则不要使用此标志。注意,这不会使 fs.open() 进入同步阻塞调用。 如果那是你想要的,则应该使用 fs.openSync()。
'w' - 以写入模式打开文件。文件会被创建(如果文件不存在)或截断(如果文件存在)。
'wx' - 类似 'w',但如果 path 存在,则失败。
'w+' - 以读写模式打开文件。文件会被创建(如果文件不存在)或截断(如果文件存在)。
'wx+' - 类似 'w+',但如果 path 存在,则失败。
'a' - 以追加模式打开文件。如果文件不存在,则会被创建。
'ax' - 类似于 'a',但如果 path 存在,则失败。
'a+' - 以读取和追加模式打开文件。如果文件不存在,则会被创建。
'ax+' - 类似于 'a+',但如果 path 存在,则失败。
关闭文件:
fs.close( fd , callback )
fs.closeSync( fd )
//fd 猜测为node为打开文件分配的一个id
删除文件:
fs.unlink( path , callback ) //异步执行 , fs异步函数callback第一个参数均为error对象
fs.unlinkSync( path ) //同步执行 , 报错会中断运行
文件重命名:
fs.rename( oldpath, newpath, callback)
fs.renameSync( oldpath, newpath )
读取文件:
fs.readfile( path [,option] ,callback ) //callback第二个参数为内容data
fs.readfileSync ( path [,option] )
读取链接:
fs.readlink( path [,option] ,callback )
fs.readlinkSync ( path [,option] )
追加数据:
fs.appendFile( file, data [,option] ,callback )
fs.appendFileSync ( file, data [,option] )
截取文件:
fs.turncate( path[, length] ,callback)
fs.turncateSync( path [, length])
拷贝文件: //v8.5新增
fs.copyFile( src, dest[, flags], callback )
fs.copyFileSync( src, dest [,flags] )
src:被拷贝的文件
dest:拷贝的目文件 //文件存在被覆盖
删除文件夹: // 要求被删除文件夹必须为空文件夹
fs.rmdir( path , callback )
fs.rmdirSync( path )
读取一个目录的内容:
fs.readdir( path , callback ) //callback第二个参数file是一个除. 和 .. 以外文件的数组
fs.readdirSync ( path )
创建文件夹:
fs.mkdir( path ,callback )
fs.mkdir( path )
检查文件存在?:// 不推荐使用,函数返回一个fs.stat对象(包含一些简单的文件数据)
fs.stat( path ,callback )
fs.statSync( path )
测试指定的文件或目录的用户权限:
fs.access( path [, mode ] , callback )
fs.accessSync( path [, mode ] )
mode: fs.constants.F_OK 文件对调用进程可见。
fs.constants.R_OK 文件可被调用进程读取
fs.constants.W_OK 文件可被调用进程写入
fs.constants.X_OK 文件可被调用进程执行。 对 Windows 系统没作用(相当于 fs.constants.F_OK)。
改变文件或目录访问权限:
fs.chmod( path ,mode ,callback)
fs.chmodSync ( path ,mode)
mode: //待添加
改变某个文件或目录的所有者和所属的组:
fs.chown( path ,uid ,gid ,callback )
fs.chownSync( path ,uid ,gid )
监测文件变化:
fs.watch( path , output , callback ) // 输出为buffer,callback第一个参数为eventType fs文件变化类型,第二个是filename文件夹名。
fs.watch('./tmp', { encoding: 'buffer' }, (eventType, filename) => {
if (filename) {
console.log(filename);
// 输出: <Buffer ...>
}
});
停止监视文件:
fs.unwatchFile(filename[, listener])
以上为初步的文件操作,不涉及buffer和流。