如何用java获取一个文件的创建时间

如何用java获取一个文件的创建时间,第1张

 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)

以上个函数可以设置文件的最后修改时间,以及设置文件为“只读”属性顶!!!

java中只能用java.io.File获得文件的最后修改时间,如下:

比如我在D盘有个文件夹a,现在要获取其创建时间:

File file = new File("D:\\a")

long time = file.lastModified()//返回文件最后修改时间,是以个long型毫秒数

String ctime = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date(time))

System.out.println(ctime)

想要获得文件的创建时间,那么只能用java去掉命令实现了,若为windows系统,想要拿到创建时间必须依赖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()   

        }   

    }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11924080.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存