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::RecursiveくださいFile::NCopy

于 2013-07-13T07:51:04.333 に答える