2011-07-01 16 views
2
rename $ARGV[0], $ARGV[1] or warn "rename fails: $!\n"; 

./programe file.txt dir/を実行すると、常に失敗します。Perlの別のディレクトリにファイルを移動するには?

ここで何が間違っていますか?名前変更のためにはperldocから

+0

エラーメッセージは何ですか?他の何かがうまくいかない場合に備えて、完全なサンプル・プログラムを入力と出力で常に表示してください。 –

答えて

7

:この機能の

行動が乱暴にあなたの システムの実装によって異なります。たとえば、システムのmv コマンドがこれを補うことがあるにもかかわらず、通常、ファイルシステム境界を越えて を処理しません。その他の制限 には、ディレクトリ、開いているファイル、または既存のファイルであるかどうかが前もって記載されていますか? 詳細については、perlportとrename(2) マンページまたは同等のシステムドキュメントを参照してください。

プラットフォームに依存しない「移動」機能については、 File :: Copyモジュールを参照してください。

代わりにFile::Copy::moveを使用してください。

4

renameは、あなたがやろうとしていないファイルの名前を変更します。 move関数を使用したい場合がありますFile::Copy

5

renameはディレクトリだけでなく、完全なターゲットパスを想定しています。試してみてください:

./progname file.txt dir/file.txt 

あなたはそれが失敗しましたどのようなエラー言うならばそれはいいだろう...

+0

フォルダの名前を変更できますか? –

+0

はい(あなたが試したことがあるかもしれません...) – ysth

+1

プラットフォームによっては、フォルダによっては動作しないかもしれません。 c.f.私の答え。 – Quentin

関連する問題