node获取本地文件路径、写入文件、文件读取

node获取本地文件路径、写入文件、文件读取

0、引入

const fs = require('fs');
const path = require('path');
在这里插入代码片

1、文件写入

// 0、文件内容
let fileObj={}
// 1、获取根目录
let baseDir = "D:\\FileDir"; //保存的根路径
let FileLocation="/file/file.json";//保存的文件夹+文件名
const url = path.join(baseDir, FileLocation);
// 2、保存路径是否存在,不存在则逐级创建目录
        if (!fs.existsSync(url)) {
            url.split(path.sep).reduce((currentPath, folder) => {
                currentPath += folder + path.sep;
                if (!fs.existsSync(currentPath)) {
                    fs.mkdirSync(currentPath);
                }
                return currentPath;
            }, "");
        }
// 3、存入路径转换
const savepath = path.join(url, filename);
// 4、存入
await fs.writeFile(savepath, JSON.stringify(fileObj), "utf8", function (err) {
      if (err) {
        // console.error(err);
        ctx.service.log.WriteLogs("info", servername, err);
        return 0;
      }
     /*console.dir("写入成功!");*/
     return 1;
})

2、文件读取

//0、内容
let obj={}

//1、读取
await readFileContent(savepath).then(res => {
  obj= JSON.parse(res)
})

function readFileContent(filepath) {
        return new Promise((resolve, reject) => {
            fs.readFile(filepath, 'utf-8', (err, data) => {
                if (err) {
                    //reject(console.log(err))
                    resolve({err:err})
                } else {
                    resolve(data)
                }
            })
        })
    }

3、获取本地文件路径

 async getPDFData() {
	let dir = '../documents/pdf',
                data = {
                    pdf: []
                }
            fs.readdirSync(dir).forEach((file) => {
                var pathname = path.join(dir, file)
                if (file == "pdf") {
                    fs.readdirSync(pathname).forEach((file2) => {
                        var pathname2 = path.join(pathname, file2)
                        data[file].push({name: file2, path: pathname2.replace("..", "")});
                    })
                }
            })
       }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值