java循环获取文件夹里文件创建时间 。。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java循环获取文件夹里文件创建时间 。。相关的知识,希望对你有一定的参考价值。
public String getFileCreateDate(File _file)
File file = _file;
try
Process ls_proc = Runtime.getRuntime().exec(
"cmd.exe /c dir " + file.getAbsolutePath() + " /tc");
BufferedReader br = new BufferedReader(new InputStreamReader( ls_proc.getInputStream()));
for (int i = 0; i < 5; i++)
br.readLine();
String stuff = br.readLine();
StringTokenizer st = new StringTokenizer(stuff);
String dateC = st.nextToken();
String time = st.nextToken();
String datetime = dateC.concat(time);
SimpleDateFormat formatter1 = new SimpleDateFormat( "yyyy-MM-dd hh:mm:ss");
SimpleDateFormat formatter2 = new SimpleDateFormat(
"yyyy/MM/ddHH:mm");
datetime = formatter1.format(formatter2.parse(datetime));
br.close();
return datetime;
catch (Exception e)
return null;
这是 获取文件夹里 单个创建时间值 求大拿帮我 把这段代码 改成循环读取全部 文件的创建时间 。。谢谢 啦
import java.io.File;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.StringTokenizer;
public class RectangleMethod
public static void main(String[] args)
RectangleMethod rm = new RectangleMethod();
//String s = rm.getFileCreateDate("D:/srdddd");
rm.getDate("D:/srdddd");
//方法一
public String getDate(String path)
String date = "";
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
File f = new File(path);
if (f.isDirectory())
File files[] = f.listFiles();
for (int i = 0; i < files.length; i++)
getDate(files[i].getAbsolutePath());
else if (f.isFile())
date = f.getName() + ":" + df.format(new Date(f.lastModified()));
System.out.println(date);
return date;
//方法二
public String getFileCreateDate(String path)
String date = "";
File f = new File(path);
if (f.isDirectory()) //判断为文件夹
File files[] = f.listFiles();
for (int i = 0; i < files.length; i++)
//递归处理
getFileCreateDate(files[i].getAbsolutePath());
else if (f.isFile()) //判断为文件
date = f.getName() + ":" + getFileCreateDate(f);
//打印时间你也可以进行其他操作比如写入到一个文件中
System.out.println(date);
return date;
public String getFileCreateDate(File _file)
File file = _file;
try
Process ls_proc = Runtime.getRuntime().exec(
"cmd.exe /c dir " + file.getAbsolutePath() + " /tc");
BufferedReader br = new BufferedReader(new InputStreamReader(
ls_proc.getInputStream()));
for (int i = 0; i < 5; i++)
br.readLine();
String stuff = br.readLine();
StringTokenizer st = new StringTokenizer(stuff);
String dateC = st.nextToken();
String time = st.nextToken();
String datetime = dateC.concat(" " + time);
SimpleDateFormat formatter2 = new SimpleDateFormat(
"yyyy-MM-dd hh:mm");
SimpleDateFormat formatter1 = new SimpleDateFormat(
"yyyy/MM/dd HH:mm");
//System.out.println(formatter2.parse(datetime));
datetime = formatter1.format(formatter2.parse(datetime));
br.close();
return datetime;
catch (Exception e)
e.printStackTrace();
return null;
代码如上,希望能帮到你 参考技术A 可以通过File流的读取所有的文件,之后通过Runtime.getRuntime().exec方法获取时间。
举例:
File file = new File("F://2007vb6");// 文件目录
try
for (File demoFile : file.listFiles())
Process ls_proc = Runtime.getRuntime().exec(
"cmd.exe /c dir " + file.getAbsolutePath() + " /tc");// 通过DOS获得的创建时间
InputStream is = ls_proc.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String str;
int i = 0;
while ((str = br.readLine()) != null)
i++;
if (i == 6)
System.out.println("Create time:" + str.substring(0, 17)); //创建时间获取
参考技术B 用java file类对象就可以了。public static void main(String sd[]) File f = new File("D:\\");
File files[] = f.listFiles();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
for(int i=0;i<files.length;i++) System.out.println(files[i].getName()+":"+df.format(new Date(files[i].lastModified())));
追问
额 他给我报个异常 。。 2013-3-26 15:48:08 org.apache.catalina.core.StandardWrapperValve invokejava.lang.ArrayIndexOutOfBoundsException: 7这句话df.format(new Date(files[i].lastModified()))
追答不会吧,这个代码我在本机测试通过了。。看错误是下标越界了,代码没有改吧。
参考技术C 直接把取时间的代码拖进循环里面去就可以了,没看懂你这循环是要做什么,多个文件的话就不是这样写的了追问我拖进 循环了 ..然后 他总是循环第一个文件的属性时间.. 用你的方法怎么写 ?求详细代码
追答getFileCreateDate只是获取一个文件的创建信息 而且在window平台上才有用
//输出多个指定目录下的所有文件的创建时间
File f = new File("D:\\");
File files[] = f.listFiles();
for(int i=0;i<files.length;i++)
if(files[i].isFile()) System.out.println(getFileCreateDate(files[i])); //这个是你上面贴出来的代码
.lastModified();是获取文件修改时间,如果没有被修改也就是创建时间
如何把java文本框内容保存到文本文件里
我做了个网站,想把用户反馈意见用文本文件的形式保存起来。就是用户点击提交,就把文本框里的内容保存到一个新建文本文件里。我在服务器上打开文本文件就能看到用户意见。这样子。
参考下面代码:
import java.io.*;import javax.swing.*;
import java.awt.FlowLayout;
import java.awt.event.*;
public class WriterTo extends JFrame implements ActionListener
JButton b;JTextField t;
public WriterTo()
super("文本框内容写入文件");
JLabel l=new JLabel("请输入内容:");
t=new JTextField(20);
b=new JButton("写入");
b.addActionListener(this);
this.add(l);
this.add(t);
this.add(b);
this.setLayout(new FlowLayout());
this.pack();
this.setVisible(true);
public void actionPerformed(ActionEvent e)
if(e.getSource()==b)
if(t.getText().equals(""))
JOptionPane.showMessageDialog(null,"请输入内容~","错误",JOptionPane.ERROR_MESSAGE);
t.grabFocus();
else
write(t.getText());
JOptionPane.showMessageDialog(null,"写入成功","提示",JOptionPane.INFORMATION_MESSAGE);
public void write(String line)
try
File f=new File("c:/文本框.txt");//向指定文本框内写入
FileWriter fw=new FileWriter(f);
fw.write(line);
fw.close();
catch(Exception e)
public static void main(String[] args)
new WriterTo();
参考技术A 首先获取文本框里的文本内容,再用IO流将文本内容写入文本文件。本回答被提问者采纳 参考技术B 用IO流啊,生成一个文本, 参考技术C 为什么非要用文件呢?麻烦,速度还慢。用数据库存多简单啊。
以上是关于java循环获取文件夹里文件创建时间 。。的主要内容,如果未能解决你的问题,请参考以下文章