2016-07-19 10 views
0

ディレクトリを作成し、そのディレクトリを変数として使用してzip/rarファイルからファイルを抽出しようとしています。fs.mkdirSyncは 'undefined'を返します

var fileZip = fileName.replace(/^.*[\\\/]/, ''); 
    // Removes full path to get 'file.zip' 
    console.log(fileZip); 
    var tempFolder = fs.mkdirSync('./app/cache/' + fileZip); 
    // tempFolder Variable for loaded comic 
    console.log('CREATE: ' + tempFolder + ' created, line 26'); 

CREATE: undefined created, line 26で返すにconsole.log

エラーがここにある原因となるコードのビット...。何がうまくいかないのですか?ディレクトリは作成したい場所に作成されますが、変数として保存されていません。

一部のファイル名にスペースが含まれているため(つまり、file name.zip)、問題の原因になっている可能性はありますか?

+0

https://nodejs.org/api/fs.html#fs_fs_mkdirsync_path_mode –

答えて

0

mkdirSync関数は、常にundefinedを返します。これはその動作です。その後、別のメカニズムを使用して、作成されたディレクトリのパスを判断する必要があります。

+0

だから、存在すると仮定することができるかもしれません'var tempFolder = './app/cache/' + fileZip'を変数に入れた後、'fs.mkdirSync(tempFolder)'? –

0

もっと簡単にしたい場合は、同じutilで再帰的なモジュールmkdirpを使用できます。

var mkdirp = require('mkdirp'); 

mkdirp('./your/path', function (err) { 
    if (err) console.error(err) 
    else console.log('Success!') 
}); 

エラーがない場合、あなたは私が定義する必要があり、パスは今

関連する問題