我正在尝试导入文件,文件名的一部分会经常更改。当前日期是文件名的一部分。所以它经常变化。
下面是导入文件的代码。因为它的名字改变了 如何在不更改文件名的情况下导入文件?
var CusInfo = path.join(__ dirname,' CusInfo_2018_05-17.txt');
答案 0 :(得分:0)
以下是我们使用fs
库读取目录内容并搜索包含“CusInfo”的文件的示例。
import fs from 'fs';
let contents = fs.readDirSync('./foo');
for(let x = 0; x < contents.length; x++){
if(contents[x].includes('CusInfo')){
// Do more checks or use the file or save to another variable.
}
}
现在,如果文件名由于日期而发生变化,您仍然可以找到一个或多个文件。
答案 1 :(得分:0)
鉴于您要阅读的文件的名称每天都在变化,如果您不想对名称进行硬编码,则需要在代码中描述相同的命名规则。
因为(我假设)你只想将今天的数据放在txt
文件的路径中,只需将其放入文件名即可。您可以使用moment这样做:
const moment = require('moment');
const fs = require('fs');
const now = moment();
const fileName = `CusInfo_${now.format('YYYY_MM-DD')}.txt`;
fs.readFileSync(fileName);
现在这可能会引发错误,因为无法保证已创建txt
文件。
要处理此问题,请在实际阅读文件之前使用fs.access()
fs.access(fileName, fs.constants.F_OK, (err) => {
if (err) {
fileName = `CusInfo_${now.add(-1, 'days').format('YYYY_MM-DD')}.txt`;
}
fs.readFileSync(fileName)
}
上面的代码将检查今天的txt
文件是否存在,如果没有,将会更改昨天txt
文件的文件名。