我使用以下代码拆分用户提供的路径,在路径中创建所有中间dirs并将时间戳附加到结束文件名。我首先使用/
拆分路径,然后在结果数组上使用forEach
。在javascript / nodejs中有没有更好的方法/直接lib函数来执行此操作。
function test(usrPath) {
var locMatches = usrPath.split("/")
locMatches.forEach (function (item) {
location = pathUtils.join(location,item)
if (!fs.existsSync(location)) {
fs.mkdirSync(location)
}
})
return pathUtils.join (location,usrPath + (new Date).toISOString().replace(/(^\d\d\d\d)|-|:|(\..*)/g,"").replace("T","_")+".log")
}
答案 0 :(得分:1)
好的,所以有路径工具允许跨平台更好地实现。
此外,它为使用路径元素(如root,dir,filename和extension)提供了更好的托管访问。 pathUtils.sep
允许更多跨平台的dir元素。
var pathUtils = require('path')
function test(usrPath) {
var pathElements = pathUtils.parse(usrPath)
pathElements.dir.split(pathUtils.sep).forEach (function (item) {
location = pathUtils.join(location,item)
if (!fs.existsSync(location)) {
fs.mkdirSync(location)
}
})
return pathUtils.join (location,pathElements.name + (new Date).toISOString().replace(/(^\d\d\d\d)|-|:|(\..*)/g,"").replace("T","_")+pathElements.ext.replace(/^$/i,".log"))
}