为什么 setLastModified(time) 不适用于此文件?



为什么以下代码中的文件日期没有更改?

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

根据我之前的评论,请按照以下检查进行操作:

  1. 您的代码是否具有对文件的写入权限?
  2. 文件是否处于打开状态?
  3. 在执行此操作时,您当前是否使用任何其他应用程序读取(或写入!(文件?

这些都是可能会阻止您更改文件时间的项目。

创建一个包含一行文本的简单纯文本文件,保存它并关闭编辑器。然后尝试在应用程序中使用该文件。 在尝试更改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)));
    }
}

相关内容

  • 没有找到相关文章

最新更新