我有一个节点脚本,它将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