Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Node.js学习之路07——fs文件系统之对文件或目录执行的其他操作大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

8. 对文件或目录执行的其他操作

8.1 修改文件名字或移动文件目录fs.rename

const fs = require('fs');
let mkdir = './mkdir';
fs.rename('./one','./two',(err) => {
    if (err) {
        console.log(`fs.rename file one to two Failed~`);
        return false;
    }
    console.log(`fs.rename file one to two success~`);
})

8.2 创建文件的硬链接fs.link

  • fs.link(oldPath,newPath)
  • srcPath参数用于指定需要被创建硬链接文件的完整路径及文件
  • dstPath参数用于指定被创建硬链接的完整路径及文件名,该硬连接与源文件必须位于同一卷中
  • 异步创建与删除文件的硬链接fs.linkSync(srcPath,dstPath)
const fs = require('fs');
let linkFile = 'link.txt';
let linkCopyFile = 'linkCopy.txt';
let data = '创建与删除文件的硬链接';
fs.writeFile('./link.txt',data,(err) => {
    if (err) {
        console.log(`write file Failed`);
        return false;
    }
    fs.link(linkFile,linkCopyFile,(err) => {
        if (err) {
            console.log(`fs.link ${linkFilE} file Failed~`);
            return false;
        }
        console.log(`fs.link ${linkCopyFilE} file success~`);
    });
});

8.3 删除文件的硬链接fS.Unlink

  • fS.Unlink(path,callBACk(err))
const fs = require('fs');
let linkFile = 'link.txt';
let linkCopyFile = 'linkCopy.txt';
let data = '创建与删除文件的硬链接';
fS.Unlink(linkCopyFile,(err) => {
    if (err) {
        console.log(`fS.Unlink ${linkFilE} file Failed~`);
        return false;
    }
    console.log(`fS.Unlink ${linkCopyFilE} file success~`);
})

8.4 创建与查看符号链接

  • fs.symlink(srcPath,dstPath,[type],callBACk(err))
  • type--> file,dir(default,非windows只能使用dir),function(only windows)
  • 同步创建与查看符号链接fs.symlinkSync(srcPath,[type])
const fs = require('fs');
fs.symlink('./one.js','./two.js','file',(err) =>{
    if(err) {
        console.log(`fs.symlink one.js to two.js Failed~`,err);
        return false;
    } 
    console.log(`fs.symlink one.js to two.js success~`)
})

8.5 readlink读取符号链接

const fs = require('fs');
fs.symlink('./one.js',(err) => {
    if (err) {
        console.log(`fs.symlink one.js to two.js Failed~`,err);
        return false;
    }
    console.log(`fs.symlink one.js to two.js success~`);
    fs.readlink('./two.js',(err,linkString) => {
        if (err) {
            console.log(`fs.readlink file Failed~`,err);
            return false;
        }
        console.log(linkString);
    })
});
/**
* fs.symlink one.js to two.js success~
* ./one.js
* **/

8.6 截断文件fs.truncate()

console.log('this is one.js');
const fs = require('fs');
fs.truncate('./one.js',10,(err) => {
    if (err) {
        console.log(`对文件进行截断操作失败~,${err}`);
        return false;
    }
    fs.stat('./one.js',stats) => {
        if (err) {
            console.log(`fs.stat file one.js Failed,${err}`);
            return false;
        }
        console.log(`fs.stat file one.js success~`);
        console.log(`./one.js size: ${stats.sizE} bytes`);
    });
});
/**
* console.lo
* **/

8.7 删除空目录

  • 只能删除空目录,如果不是空目录,会删除失败
const fs = require('fs');
fs.rmdir('./dirOne',(err) => {
    if (err) {
        console.log(`fs.rmdir dir one Failed~,${err}`);
        return false;
    }
    console.log(`fs.rmdir dir one success~`);
});

8.8 监视文件或目录

const fs = require('fs');
let filename = './one.js'
fs.watchFile(filename,{
    persistent: true,interval: 100
},(curr,prev) => {
    if (Date.parse(prev.ctimE) === 0) {
        console.log(`${filename}文件被创建`);
    } else if (Date.parse(curr.ctimE) === 0) {
        console.log(`${filename}文件删除`);
    } else if (Date.parse(prev.mtimE) !== Date.parse(curr.mtimE)) {
        console.log(`${filename}文件修改`);
    } else {
        console.log(`${filename}文件没有被操作`);
    }
    if (Date.parse(curr.ctimE) !== 0) {
        console.log(`${filename}文件的大小为${Curr.sizE}bytes`);
    }
})

8.9 取消监控

var watcher = fs.watch('./file01.txt',function (event,fileName) {
    console.log(event);//事件名
    console.log(fileName);//文件名
    watcher.close();//关闭监视
});

8.10 遍历文件夹里所有的文件和目录,并判断某一个文件里是否有某一些内容

const fs = require('fs');

let filePath = path.resolve('/root/files/order');
fileDisplay(filePath);

function fileDisplay(filePath) {
    fs.readdir(filePath,files) => {
        // 这里的files是根目录下的直接子文件和子目录
        if (err) {
            console.error(err);
            return false;
        }
        files.forEach((fileName) => {
            // 对根目录下的直接子文件和子目录进行遍历
            // 利用path的拼接路径方法
            // 找到该文件的路径
            let fileDir = path.join(filePath,fileName);
            console.log(fileDir);
            fs.stat(fileDir,stats) => {
                // 利用fs的stat方法判断遍历的对象是文件还是目录
                if (err) {
                    console.error('get file stats info Failed');
                    return false;
                }
                let isFile = stats.isFile();
                let isDir = stats.isDirectory();
                if (isFilE) {
                    if (fileDir.indexOf('user.js') > 0) {
                        fs.readFile(fileDir,targetFileData) => {
                            if (targetFileData.indexOf("var id = '") > 0) {
                                console.log('the user.js has id');
                            } else {
                                console.log('the user.js has not id',fileDir);
                            }
                        })
                    }
                } else {
                    fileDisplay(fileDir);
                }
            })
        })
    })
}
@H_842_197@

大佬总结

以上是大佬教程为你收集整理的Node.js学习之路07——fs文件系统之对文件或目录执行的其他操作全部内容,希望文章能够帮你解决Node.js学习之路07——fs文件系统之对文件或目录执行的其他操作所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。