我知道设置创建时间戳在
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"); } } }
解决方法
我相信你有以下选择:
找到一个可以从命令行调用的工具.那么你可以从你的java代码与它进行交互.
> MSDN File Times的以下链接显示了任何工具的工作原理 – 特别注意函数GetFileTime和SetFileTime.
在这里我猜你会很幸运:)在Google上搜索这些功能我在这里发现了一个帖子. This answer(不是接受的)到How to Discover a File’s Creation Time with Java似乎做了你想要的使用JNA和上述方法.如果是这样,那么请再次提出这个答案:)