当前位置: 首页 > 面试题库 >

在Java中设置文件创建时间戳

公冶桐
2023-03-14
问题内容

我知道在Java中不设置创建时间戳记是因为Linux没有它,但是有没有办法在Java中设置文件(Windows)的创建时间戳记?我在这里做了一个基本的修改时间戳编辑器。

import java.io.*;
import java.util.*;
import java.text.*;
import javax.swing.*;

public class chdt{
    static File file;
    static JFrame frame = new JFrame("Input a file to change");
    public static void main(String[] args) {
        try{

            final JFileChooser fc = new JFileChooser();
            fc.setMultiSelectionEnabled(false);

            //BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
            //System.out.println("Enter file name with extension:");
            //String str = bf.readLine();
            JOptionPane.showMessageDialog(null, "Input a file to change.");
            frame.setSize(300, 200);

            frame.setVisible(true);

            int retVal = fc.showOpenDialog(frame);
            if (retVal == JFileChooser.APPROVE_OPTION) {
                file = fc.getSelectedFile();
                frame.setVisible(false);
            } else {
                JOptionPane.showMessageDialog(null, "3RR0RZ!  You didn't input a file.");
                System.exit(0);
            }

            //System.out.println("Enter last modified date in 'dd-mm-yyyy-hh-mm-ss' format:");
            //String strDate = bf.readLine();
            String strDate = JOptionPane.showInputDialog("Enter last modified date in 'dd-mm-yyyy-hh-mm-ss' format:");

            SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy-HH-mm-ss");
            Date date = sdf.parse(strDate);

            if (file.exists()){
                file.setLastModified(date.getTime());
                JOptionPane.showMessageDialog(null, "Modification is successful!");
            }
            else{
                JOptionPane.showMessageDialog(null, "File does not exist!  Did you accidentally it or what?");
            }
        }
        catch(Exception e){
            e.printStackTrace();
            JOptionPane.showMessageDialog(null, "3RR0RZ");
        }
    }
}

问题答案:

我相信您有以下选择:

  1. 查找可以执行此操作并且可以从命令行调用的工具。然后,您可以通过Java代码与之交互。
  2. 以下来自MSDN File Times的链接显示了任何工具的工作方式-特别注意功能GetFileTimeSetFileTime

在这里,我想您会很幸运:)在Google上搜索这些功能后,我在此处找到了一篇帖子。如何使用Java发现文件的创建时间的答案(不是被接受的答案)似乎完全可以满足您使用JNA和上述方法的需要。如果可以,请再回答一次:)

请不要介意标题,它也可以设置创建时间。希望您能成功进行操作。



 类似资料:
  • 问题内容: 在Java中创建文件对象时,如何将文件权限设置为777(或任何其他任意权限)? 问题答案: 如果在启动JVM之前将设置为,则将对所有人创建具有所有权限的所有创建的文件和目录。这 可能是 一个坏主意。 创建文件后,可以使用,API来修改模式位。如果您授予权限,那通常就足够了;如果您要尝试 删除 其他用户的权限,则可能应该从一开始就非常严格地设置权限。(在启动JVM之前,然后将权限添加到您

  • 问题内容: 我用Java编写了一个小的复制工具,用于复制USB记忆棒上的.mp3文件。复制新文件时,会保留一些文件属性,但不会保留创建时间。 要复制文件,我使用: 所以我的问题是,有没有办法节省文件创建时间?如果没有,我想我建立了一个用Windows robocopy复制的类。 问题答案: 如果您使用的是Java 7+,则可以使用: 如果那没有复制创建时间(在我的机器上也是如此),您也可以手动设置

  • 问题内容: 我想为我的PHP项目创建一个配置文件,但是我不确定执行此操作的最佳方法是什么。 到目前为止,我有3个想法。 1用途变量 2用建筑 3用途数据库 我将在类中使用config,因此我不确定哪种方法是最佳方法,或者是否有更好的方法。 问题答案: 一种简单而优雅的方法是创建一个仅返回数组的文件(或您所谓的文件): 然后:

  • 问题内容: 我需要在Java中创建一个时间戳(以毫秒为单位),以确保在特定的VM实例中是唯一的。即需要某种方式来限制System.currentTimeMillis()的吞吐量,以便它每毫秒最多返回一个结果。关于如何实施的任何想法? 问题答案: 这样可以使时间尽可能接近当前时间,而不重复。 避免每毫秒限制一个id的一种方法是使用微秒级的时间戳。例如,将currentTimeMS乘以1000。这将允

  • 问题内容: 有客观的更好的方法在bash脚本中创建临时文件吗? 我通常只要给他们起名就可以使用它们,例如tempfile-123,因为脚本结束后它将被删除。除了覆盖当前文件夹中可能的tempfile-123之外,这样做是否有其他缺点?还是以更谨慎的方式创建临时文件有什么好处? 问题答案: 该手册页解释了它相当好: 传统上,许多shell脚本使用pid作为后缀来命名程序名称,并将其用作临时文件名。这

  • 问题内容: 我想创建一个ini文件来存储我的应用程序的一些设置。找到jar文件的位置并在其中创建一个ini文件是一个好主意吗?如果是,那么如何找到jar文件的位置? 但是,如果您知道针对此类问题的更好解决方案,我想听听其中的一些内容。 编辑 :我正在使用mac,我想在Windows中运行相同的应用程序。我可以在System.getProperty(“ user.home”)目录中写一些东西,但是如