由于某种原因,我必须删除旧文件并根据我们的客户端创建新文件
修改日期是更改为当前时间,但创建日期不会更改为当前时间.
我的代码如下
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)
希望这可以帮助。