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=0i<6i++){
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没有函数能直接拿到文件的创建时间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的函数只能取得lastModified()有一个比较笨的方法Process p=Runtime.getRuntime().exec("dir startup.bat /t -c")
然后取得p的输出信息就可以得到创建时间了!上面的例子我是得到tomcat的startup.bat这个文件的创建时间,如果你想得到其它文件的创建时间就可以将startup.bat换成其它文件名!study and mark ^_^如果用dir, 取得创建时间的参数是/TC路过学习ing帮您顶java是用native来获取 *** 作系统的支持,从而对文件进行 *** 作。
具体实现类是
java.io.FileSystem
这个类是私有的只能在jdk内部使用,由于这个类没有提供文件时间创建的接口,你也就没有办法用纯java来获得这一个功能(但愿不是这样)。
有一个简单的方法是自己调用系统函数,或者干脆调用各C函数
先写各本地类访问方法
class MyFileSystem{
public native void getCreatFileTime(File f)static {System.loadLibrary(" ")}
public static void main(String[] args) {
new HelloWorld().getCreatFileTime()}}编译本文件然后执行 javah,便会自动产生头文件 MyFileSystem.h
函数的具体实现如下:
#include
#include "MyFileSystem.h"
#include
JNIEXPORT double JNICALL
Java_MyFileSystem_displayHelloWorld(JNIEnv *env, jobject obj){//在这里调用C函数
double time=getFileCreatTime_IN_C(obj)
return time}高手如云,我心忐忑
奋发图强~高手如云,我心忐忑奋发图强~me too,高手如云,我心忐忑奋发图强~me too,too还有可以复制java.io.FileSystem及相关类的源代码,把所有东西成public的,这样总可以用了吧,
当然把类名也改掉。。。。。顶!
Study!Up!!!顶一下!
支持upFile f = new File("d:\\a.txt")
Date date = new Date()
long L = date.getTime()
f.setLastModified(L)
以上个函数可以设置文件的最后修改时间,以及设置文件为“只读”属性顶!!!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)