2016-04-08 25 views
2

私はNode.jsを使い慣れていないので、たくさんのことに慣れていません。 だから基本的に私は、現在の作業ディレクトリにディレクトリを作成したい:現在のディレクトリにNode.jsのディレクトリを作成するには

var mkdirp = require('mkdirp'); 
console.log("Going to create directory /tmp/test"); 
mkdirp('/tmp/test',function(err){ 
     if (err) { 
      return console.error(err); 
     } 
console.log("Directory created successfully!"); 
}); 

私の現在のディレクトリには、私はそのディレクトリにnode main.jsを実行することを意味する、Windows上C:\Users\Owner\Desktop\Tutorials\NodeJSです。 (main.jsはC:\Users\Owner\Desktop\Tutorials\NodeJSにあります) コードを実行すると、C:\ tmp \ test(C:\)が生成されます。 しかし、私は現在のディレクトリに作成したいので、結果はC:\Users\Owner\Desktop\Tutorials\NodeJS\tmp\testです。

私はちょうどそれを行う方法がわからない...

答えて

2

あなたは、出力あなたのコマンドが実行されているディレクトリ(あなたのケースでは、あなたがnode main.jsを実行したディレクトリ)ので、あなたのコードにprocess.cwd()を使用することができます次のようになります。

var mkdirp = require('mkdirp'); 
var path = require('path'); 

console.log("Going to create directory /tmp/test"); 
mkdirp(path.join(process.cwd(), '/tmp/test'), function(err){ 
    if (err) { 
    return console.error(err); 
    } 
    console.log("Directory created successfully!"); 
}); 

をあなたはmain.jsファイルが置かれている、あなたは(node main.jsを呼び出すことで)それを実行していないところだけディレクトリが必要な場合は、代わりにprocess.cwd()__dirname変数を使用することができます。

path.join()関数を使用すると、パス区切り文字が正しく設定されていることを確認することをお勧めします。特に、フォワードスラッシュをオプションとして扱うWindowsシステムの場合は、

+1

素晴らしい、それは私が欲しいものを正確だし、それは...ただ一つのことを作品には、コードブロックに構文エラーがあります。ありがとう。 path.join(process.cwd()、 '/ tmp/test')は最後に1つだけ必要です)... –

-1
var mkdirp = require('mkdirp'); 
var path = require('path'); 
console.log("Going to create directory /tmp/test"); 
mkdirp(path.join(__dirname, '/tmp/test'),function(err){ 
    if (err) { 
     return console.error(err); 
    } 
    console.log("Directory created successfully!"); 
}); 

あなたは__dirnameが戻ってくるpath.join(__dirname, '/tmp/test')The name of the directory that the currently executing script resides in.あなたはモジュールのパス」を含める必要が

path.join()仕事をするために使用することができます。

リファレンス

__dirname

+0

これは間違っています。 '__dirname'は' main.js'が置かれているディレクトリへの絶対パスを返しますが、実行される場所は返しません。 – p4sh4

+0

私は特定の概念を理解していませんでしたが、ローカルマシンでこのコードを実行し、OPが望むようにディレクトリを作成することを確認しました –

+0

これは、ファイルが同じディレクトリにあるこの特定の例のためです実行、これは端の場合です。技術的には、あなたの答えは間違っています。 – p4sh4

関連する問題