为什么以下代码中的文件日期没有更改?
fLocal.location
= C:\ 中的现有文件
fLocal.date
= 要设置的日期 长整型
boolean x = new File(fLocal.location).setLastModified(Long.parseLong(fLocal.date));
System.out.println("Changed: " + x);
System.out.println(new Date(new File(fLocal.location).lastModified()));
System.out.println(new Date(Long.parseLong(fLocal.date)));
输出:
Changed: false
Fri Feb 15 23:02:51 CET 2013
Fri Feb 15 22:49:34 CET 2013
根据我之前的评论,请按照以下检查进行操作:
- 您的代码是否具有对文件的写入权限?
- 文件是否处于打开状态?
- 在执行此操作时,您当前是否使用任何其他应用程序读取(或写入!(文件?
这些都是可能会阻止您更改文件时间的项目。
创建一个包含一行文本的简单纯文本文件,保存它并关闭编辑器。然后尝试在应用程序中使用该文件。 在尝试更改File
Object
的时间之前,请确保在上调用exists()
,以确保您确实拥有有效的文件。
在我的本地测试了您的代码,它可以工作...我更改了系统上非常旧文件的修改日期...
- 查看文件是否在其他地方使用...-检查您是否具有文件权限
import java.io.File;
import java.io.IOException;
import java.util.Date;
class Test
{
private class flocalClass
{
public String date;
public String location="c:/Test/cascade.xyz";
}
public static void main (String[]args) throws IOException
{
flocalClass fLocal = new Test().new flocalClass();
fLocal.date = Long.toString(new Date().getTime());
boolean x = new File(fLocal.location).setLastModified(Long.parseLong(fLocal.date));
System.out.println("Changed: " + x);
System.out.println(new Date(new File(fLocal.location).lastModified()));
System.out.println(new Date(Long.parseLong(fLocal.date)));
}
}