Попытка установить время последнего изменения файла в Java после его переименования

Вот код, с которого я начал:

long modifiedTime = [some time here];
File oldFile = new File("old_name.txt");
boolean renamed = oldFile.renameTo(new File("new_name.txt");
boolean timeChanged = oldFile.setLastModified(modifiedTime);

System.out.println("renamed: " + renamed);
System.out.println("time changed: " + timeChanged);

И результат, который я увидел, был:

renamed: true
time changed: false

Но когда я попробовал:

long modifiedTime = [some time here];
boolean renamed = new File("old_name.txt").renameTo(new File("new_name.txt"));
boolean timeChanged = new File("new_name.txt").setLastModified(modifiedTime);

System.out.println("renamed: " + renamed);
System.out.println("time changed: " + timeChanged);

Похоже, он работал нормально, с этим результатом:

renamed: true
time changed: true

Почему второй подход работает, а первый нет?

5
задан K Mehta 24 July 2011 в 08:27
поделиться