我有一個節點腳本,它將zip壓縮文件下載到tmp/archive.zip
中,並將其壓縮到tmp/archive
。Node.js將子目錄的內容移動到當前目錄
我想將tmp/archive
的內容轉換爲.
。我很難找到怎樣的方式,相當於mv tmp/archive/* .
我曾嘗試fs.rename('tmp/archive/*', '.', function(err){
使用fs.rename
但給了我以下錯誤:Error: ENOENT: no such file or directory, rename 'tmp/archive/*' -> '.'
我也用glob列出的內容嘗試tmp/archive
,然後遍歷它和移動使用FS-額外的舉動的文件,如下所示:
glob('tmp/archive/*', {}, function(err, files){
for (var i = files.length - 1; i >= 0; i--) {
fs.move(files[i], '.', function(err){});
}
}.bind(this));
導致如下因素的錯誤:Error: EEXIST: file already exists, link 'tmp/archive/subdirectory' -> '.'
我只能從腳本中調用mv tmp/archive/* .
,但如果可能的話,我想避免這種情況。有什麼明顯的我失蹤?我怎麼能這樣做呢?
請問源子目錄包含子目錄本身或只是文件? – jfriend00
我試圖移動的子目錄包含兩個文件夾(也包含文件夾等)和文件。 – rabble
好的,我的答案在下面支持嵌套的子目錄。它也會移動。我已經自己測試過了。 – jfriend00