初识nodejs18

用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('......');
    }

})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值