データ収集プログラムでログファイルの名前を変更するメソッドを作成しようとしていますが、IOException
一度アクセスした直後に(データの2番目のトレースで)ログファイルにアクセスしようとすると、(まれに)スローされるメソッドがあります。
それがへの呼び出しによるものなの.delete()
か、ファイルにアクセスする前にファイルが閉じていることを確認する必要があるのかはわかりません。私は本当にこれに固執しています。これが私が取り組んでいる方法です。
public static void renameFile(String oldName, String newName) throws IOException
{
File srcFile = new File(oldName).getAbsoluteFile();
boolean bSucceeded = false;
try
{
File destFile = new File(newName).getAbsoluteFile();
if (destFile.exists())
{
if (!destFile.delete())
{
throw new IOException(oldName + " was not successfully renamed to " + newName + ", could not perform !destFile.delete()");
}
}
if (!srcFile.renameTo(destFile))
{
throw new IOException(oldName + " was not successfully renamed to " + newName + ", could not rename source file");
}
else
{
bSucceeded = true;
}
}
finally
{
if (bSucceeded)
{
srcFile.delete();
}
}
}