javascript:从文件路径创建目录,递归地将时间戳添加到文件名

时间:2017-05-26 04:04:12

标签: javascript node.js

我使用以下代码拆分用户提供的路径,在路径中创建所有中间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")
}

1 个答案:

答案 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"))
}