初识nodejs18

来源:互联网 发布:轩辕剑披风进阶数据 编辑:程序博客网 时间:2024/06/08 01:50

用watch监控文件的改变

/*** 文件的读取,前面学过的文件添加,和追加.* 异步地读取一个文件:   fs.readFile(filename,[options],callback)* 同步读取一个文件:   fs.readFileSync(fileName,[options])** 检查指定路径的文件,或者目录是否存在,  fs.exists(path,callback)* 检查指定路径的文件,或者目录是否存在, 同步的方法 fs.existsSync(path)** 删除一个文件 :fs.unlink(path,callback)* 删除一个文件的同步的方式: fs.unlinkSync(path)** 重命名文件: fs.rename(oldPath,newPath,callback)* 重名名文件的同步版本:         fs.renameSync(oldPath,newPath)** 读取文件信息  :fs.stat(path,callback);* 读取文件信息的同步版本:fs.statSync(path)**   观察指定路劲的改变,filename路径可以是文件或者目录.    :fs.watch(filename,[options],[listener])* */var fs = require("fs");fs.readFile('2.txt', function(err,data){    //console.log(arguments);    if(err){        console.log("文件读取失败!");    }else{        console.log( data.toString() );    }})/*fs.unlink("2.txt",function(err,data){    if(err){        console.log("删除文件失败!")    }else{        console.log("删除文件成功!")    }})*/fs.rename("2.txt","3.txt",function(err,data){    if(err){        console.log("重命名失败!");    }else{        console.log("重命名成功!");    }})fs.stat('3.txt',function(err,data){   console.log(arguments);})/** 点击右键擦汗看文件的属性.* 文件读取失败!重命名失败!{ '0': null,  '1':   Stats {     dev: 146671204,     mode: 33206,     nlink: 1,     uid: 0,     gid: 0,     rdev: 0,     blksize: undefined,     ino: 11258999068426340,     size: 0,     blocks: undefined,     atimeMs: 1502883780433.396,     mtimeMs: 1502883780433.396,     ctimeMs: 1502883785117.564,     birthtimeMs: 1502883780433.396,     atime: 2017-08-16T11:43:00.433Z,     mtime: 2017-08-16T11:43:00.433Z,     ctime: 2017-08-16T11:43:05.118Z,     birthtime: 2017-08-16T11:43:00.433Z } }Process finished with exit code 0* *//**   fs.watch这个方法是不稳定的,第一个参数是文件或者目录,*   第二个参数实际使用的并不是很多,第三个参数是回调函数,这个方法*   并不是完全跨平台的,且在某些情况之下不可用.*   可用性:  此功能依赖于 操作系统 底层 提供的方法 来监视文件系统的变化.*   在Linux系统上 使用inotofy.*   在操作系统上,(包括),使用kqueue*   在SunOs操作系统上,使用event ports.*   在windows系统上,该特性依赖于ReadDirectoryChangesW.**   如果系统 底层函数 处于某些原因,不能 使用,那么fs.watch就不可用,例如,*   监视网络文件系统  的文件 或者目录,就时常不能 稳定工作,有时候甚至于会不起作用.**   在回调函数中 提供的 filename 参数不是在每一个操作系统中都被支持,*   (当下仅在Linux和Windows上支持),即便是在支持的系统中,filename也不能保证*   在每一次回调的时候  都被提供,  因此不要 假设filename 参数总会在回调函数中提供,*   在回调函数中添加  检测filename 是否为null的if判断句.**   当文件被改变 或者被 重命名的时候  会触发事件.** */* 
var fs = require('fs');var filename = "3.txt";//options设置,这个参数可以不填.fs.watch(filename,function(ev,fn){    console.log(ev);    if(fn){        console.log(fn+"发生了改变!");    }else{        console.log('......');    }})
原创粉丝点击