2行追加する必要があるファイルがあります。そのために、ファイルを開き、行を読み取り、新しい行を追加して、ファイルを新しい一時ファイルとして保存します。元のファイルを削除し、新しいファイルの名前を元のファイル名に変更したいと思います。しかし、どういうわけかそれは起こっていません。
unlink $file;
rename($outfile,"D:/Test/Original.cxx") or die;
これが私が今それをやろうとした方法です。どんな助けでも!
コマンドの出力をテストしてみてください。unlinkコマンドは、削除されたファイルの数を返します。この情報を使用して、ファイルが削除されたかどうかをテストできます。
unlink $file or die qq(Cannot delete file "$file"\n;
rename $outfile, $file or die qq(Cannot rename file "$outfile" to "$file\n);
unlink
これにより、が失敗しているか、が発生しているかがわかりrename
ます。ファイルがまだ開いている可能性があります。ファイルに行を追加する場合は、close
最初に を使用してファイル ハンドルを閉じてください。
open my $in_fh, "<", $file or die qq(Cannot open "$file" for reading\n);
open my $out_fh, ">", $outfile or die qq(Cannot open file "$outfile" for writing\n)
... #What ever you're doing
close $in_fh; #Close your files, so nothing is holding them open.
close $out_fh;
unlink $file or qq(Cannot delete file "$file"\n);
rename $outfile, $file or qq(Cannot rename "$outfile" to "$file"\n);
Windows では、何かを行う前にすべてのファイル ハンドルを閉じることが特に重要です。読み取りでも、ファイルに対して何もできなくなります。
それでもうまくいかない場合は、その理由をよく理解する必要があります
unlink($file) && rename($outfile,$file) or die "$! $file";