本文目录一览:
JAVA怎样实现获取文件创建时间啊,求帮助。
Java只能读取到文件的最后修改时间,不能获取创建时间,
创建时间是利用了cmd命令获取的:
public class FileTest {
public static void main(String[] args) {
getCreateTime("d:\\test-1.txt");
getModifiedTime("d:\\test-1.txt");
}
public static void getCreateTime(String filePath) {
String strTime = null;
try {
Process p = Runtime.getRuntime().exec("cmd /C dir " + filePath + "/tc");
InputStream is = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = br.readLine()) != null) {
if (line.endsWith(".txt")) {
strTime = line.substring(0, 17);
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("创建时间 " + strTime);
}
public static void getModifiedTime(String filePath) {
long time = new File(filePath).lastModified();
String ctime = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date(time));
System.out.println("修改时间[1] " + ctime);
}
}
如何用java获取一个文件的创建时间
java没有函数能直接拿到文件的创建时间lastModified()只能获得最后一次修改时间
想要拿到创建时间必须依赖Windows系统的API,通过调CMD命令实现,
代码如下:
public static void main(String[] args) {
try {
Process p = Runtime.getRuntime().exec(
"cmd /C dir d:\\test.txt /tc");
InputStream is = p.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(str.substring(0, 17));
}
}
} catch (java.io.IOException exc) {
exc.printStackTrace();
}
}
java 查看文件创建时间
在java中没有正式的方法来获取文件的创建时间,但是,可以使用下面的解决方法在Windows平台上获取文件的创建日期。
java如何获取文件的创建日期
package com.mkyong.file;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class GetFileCreationDateExample
{
public static void main(String[] args)
{
try{
Process proc =
Runtime.getRuntime().exec("cmd /c dir c:\\logfile.log /tc");
BufferedReader br =
new BufferedReader(
new InputStreamReader(proc.getInputStream()));
String data ="";
//it's quite stupid but work
for(int i=0; i6; i++){
data = br.readLine();
}
System.out.println("Extracted value : " + data);
//split by space
StringTokenizer st = new StringTokenizer(data);
String date = st.nextToken();//Get date
String time = st.nextToken();//Get time
System.out.println("Creation Date : " + date);
System.out.println("Creation Time : " + time);
}catch(IOException e){
e.printStackTrace();
}
}
}
结果:
Extracted value : 31/05/2010 08:05 14 logfile.log
Creation Date : 31/05/2010
Creation Time : 08:05
java循环获取文件夹里文件创建时间 。。
import java.io.BufferedReader;
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;
}
}
}
代码如上,希望能帮到你