0

我有一个相当简单的 perl 脚本,归结为

use warnings; use strict;

use File::Copy;

#  ... some uninteressing things such as
#      assigning variables etc ...

move($dir_from, $dir_to) or die "could not move $dir_from to $dir_to";  

# ... more uninteresting things ...

$dir_1如果并且$dir_2在同一个驱动器上,这似乎有效。但是,一旦我尝试跨驱动器移动目录,它就不起作用了。不幸的是,我在File::Copy. 事实上,文档甚至指出

如果可能, move() 将简单地重命名文件。否则,它将文件复制到新位置并删除原始文件。

有人可以确认我的“问题”确实与我的假设有关,还是有其他原因?

4

1 回答 1

4

实际上,File::Copy文档并没有说明它完全可以移动目录。该文档只提到了文件。“意外”在同一分区上移动目录有效,因为该rename()功能(如果源和目标位于同一分区上,则首选复制+删除)适用于文件和目录。

顺便说一句,在 Unix 系统上的行为是相同的。

如果您需要处理目录的移动,请查看 CPAN 模块,如File::Copy::RecursiveFile::NCopy

于 2013-07-13T07:51:04.333 回答