2017-05-26 26 views
0

以下のコードを使用して、ユーザーの提供するパスを分割し、パス内のすべての中間ディレクトリを作成して終了ファイル名にタイムスタンプを付加します。私は最初に/でパスを分割し、次に得られた配列に対してforEachを使用しています。 javascript/nodejsでこれを行うためのより良い方法/直接lib関数はありますか?javascript:ファイルパスからのディレクトリの作成再帰的にファイル名にタイムスタンプを追加する

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

いいえ、プラットフォーム間で実装を改善するためのパスユーティリティがあります。

また、ルート、ディレクトリ、ファイル名、拡張子などのパス要素を扱うための管理アクセスが優れています。 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")) 
} 
関連する問題