创建日期不会在删除文件时更改,然后创建文件

Dar*_*tel 6 java file

由于某种原因,我必须删除旧文件并根据我们的客户端创建新文件

修改日期是更改为当前时间,但创建日期不会更改为当前时间.

在此输入图像描述 我的代码如下

  public static void main(String args[]) throws Exception {
    FileUtils.deleteQuietly(new File("d:\\inbox\\json\\test.txt"));
    FileWriter fileWriter = new FileWriter("d:\\inbox\\json\\test.txt", false);
    fileWriter.append(new Date().toString());
    fileWriter.close();
  }
Run Code Online (Sandbox Code Playgroud)

此代码删除旧数据并写入新数据

但为什么日期创建的时间不会改变..

请帮我弄清楚我的代码有什么问题.提前致谢.

小智 4

这是由于 Windows 中的文件系统隧道而发生的。有一些选项可以禁用/配置它。您可以从此链接support.microsoft.com获取有关此问题的更多信息。

为了以java方式解决这个问题,您可以在创建文件后立即设置文件创建时间(文件属性),如下面的代码所示。

public static void main(String args[]) throws Exception {
        final String FILE_PATH = "d:\\test.txt";
        FileUtils.deleteQuietly(new File(FILE_PATH));
        FileWriter fileWriter = new FileWriter(FILE_PATH, false);
        fileWriter.append(new Date().toString());
        fileWriter.close();
        setFileCreationTime(FILE_PATH);

    }

    public static void setFileCreationTime(String filePath) throws IOException {
        Path path = Paths.get(filePath);
        FileTime fileTime = FileTime.fromMillis(System.currentTimeMillis());
        /* Changing the Created Time Stamp */
        Files.setAttribute(path, "basic:creationTime", fileTime,
                LinkOption.NOFOLLOW_LINKS);
    }
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。