1.0.2 • Published 3 years ago

wang-zi-hao-fs v1.0.2

Weekly downloads
3
License
ISC
Repository
-
Last release
3 years ago

node 文件api

const fs = require('fs');
let data = "hello world";

//写入文件
fs.writeFileSync('hello.txt',data,"utf8");

//改文件名
fs.renameSync('hello.txt',"hello world.txt");

//追加内容
fs.appendFileSync('hello world.txt',data,"utf8");

//复制文件

fs.copyFileSync('hello world.txt',"./img/1.txt");

//创建文件夹

fs.mkdirSync('creatFile');

//删除文件夹 (空)

fs.rmdirSync("creatFile");

//读取文件夹目录
let ls = fs.readdirSync('img');
console.log(ls);

//判断是文件夹还是文件

let lss = fs.statSync('img')
console.log(lss.isFile());

//判断路径是否存在

let exis = fs.existsSync('img/1.txt')
console.log(exis);

//复制大文件
let read = fs.createReadStream('hello world.txt'); //读取文件流
let writ = fs.createWriteStream('att.txt');   //写入文件流
read.pipe(writ);  //复制文件执行

文件夹转json

const fs = require('fs');

function dirtojson(dir) {

    let stat = fs.statSync(dir);
    if (stat.isFile()) {
        return {
            name: dir,
            isfile: true,
            content: fs.readFileSync(dir, 'utf8'),
            ext: dir.slice(dir.lastIndexOf('.')),

        }
    } else {
        return {
            name: dir,
            isfile: false,
            content: fs.readdirSync(dir).map(item => {
                return dirtojson(dir + '/' + item);
            })
        }
    }
}
let data = JSON.stringify(dirtojson('2'));
fs.writeFileSync('index.json', data);

json转文件夹

const fs = require("fs");

function JsonToDir(data) {
    if (data.isFile) {
        // 是文件
        fs.writeFileSync(data.name, data.content)
    } else {
        // 是文件夹
        fs.mkdirSync(data.name);
        // 循环数组
        data.children.forEach(item => {
            // 递归
            JsonToDir(item)
        })
    }
}
let data = JSON.parse(fs.readFileSync("data.json"))
JsonToDir(data)

复制文件夹

const fs = require('fs');

function copyDir(d1, d2) {
    if (!fs.existsSync(d2)) {
        fs.mkdirSync(d2);
    }
    let arr = fs.readdirSync(d1);
    arr.forEach(item => {
        let dird1 = d1 + '/' + item;
        let dird2 = d2 + '/' + item;
        if (fs.statSync(dird1).isFile()) {
            fs.copyFileSync(dird1, dird2);
        } else {
            copyDir(dird1, dird2);
        }
    })
}
copyDir('deom', 'deom1');

删除文件夹

const fs = require('fs');
// 删除文件夹
function deleteDir(dirname) {
    // 1.读取文件夹子目录
    let arr = fs.readdirSync(dirname)
    // 2.遍历子目录
    arr.forEach(item => {
        // 2-1拼接目录 保证目录正确性
        item = dirname + "/" + item
        // 2-2 判断是文件还是文件夹
        if (fs.statSync(item).isFile()) {
            // 2-3 删除文件
            fs.unlinkSync(item)
        } else {
            // 2-4 递归删除文件夹
            deleteDir(item)
        }
    })
    // 3.删除空的文件夹
    // 因为上面的forEach执行完了 文件夹是空的
    fs.rmdirSync(dirname)
}



deleteDir("demo")
1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago