java编写程序获取指定文件的最后修改时间

java编写程序获取指定文件的最后修改时间,第1张

package comxianhome2;

import javaioBufferedReader;

import javaioFile;

import javaioFileInputStream;

import javaioFileNotFoundException;

import javaioIOException;

import javaioInputStream;

import javaioInputStreamReader;

import javatextSimpleDateFormat;

import javautilCalendar;

import javautilDate;

import javautilList;

public class FileOperate {

/

@param args

/

public static void main(String[] args) {

// FileOperate fo = new FileOperate();

// String filepath = "G:\\02";

// fogetFileList(filepath);

getCreateTime();

}

public List<File> getFileList(String filepath) {

try {

File file = new File(filepath);

if (fileisDirectory()) {

String[] filelist = filelist();

for (int i = 0; i < filelistlength; i++) {

File Ifile = new File(filepath + "\\" + filelist[i]);

FileInputStream fis = new FileInputStream(Ifile);

long modifiedTime = IfilelastModified();

Date date=new Date(modifiedTime);

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:MM");

String dd=sdfformat(date);

Systemoutprintln("File name:" + IfilegetName()

+ " \tFile size: "

+ (double) ((double) fisavailable() / 1024 / 1024)

+ "M"+ " \tFile create Time: "+dd);

}

}

} catch (FileNotFoundException e) {

eprintStackTrace();

} catch (IOException e) {

eprintStackTrace();

}

return null;

}

/

读取文件创建时间

/

public static void getCreateTime(){

String filePath = "G:\\02\\123txt";

String strTime = null;

try {

Process p = RuntimegetRuntime()exec("cmd /C dir "

+ filePath

+ "/tc" );

InputStream is = pgetInputStream();

BufferedReader br = new BufferedReader(new InputStreamReader(is));

String line;

while((line = brreadLine()) != null){

if(lineendsWith("txt")){

strTime = linesubstring(0,17);

break;

}

}

} catch (IOException e) {

eprintStackTrace();

}

Systemoutprintln("创建时间 " + strTime);

//输出:创建时间 2009-08-17 10:21

}

/

读取文件修改时间的方法1

/

@SuppressWarnings("deprecation")

public static void getModifiedTime_1(){

File f = new File("C:\\testtxt");

Calendar cal = CalendargetInstance();

long time = flastModified();

calsetTimeInMillis(time);

//此处toLocalString()方法是不推荐的,但是仍可输出

Systemoutprintln("修改时间[1] " + calgetTime()toLocaleString());

//输出:修改时间[1] 2009-8-17 10:32:38

}

/

读取修改时间的方法2

/

public static void getModifiedTime_2(){

File f = new File("C:\\testtxt");

Calendar cal = CalendargetInstance();

long time = flastModified();

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

calsetTimeInMillis(time);

Systemoutprintln("修改时间[2] " + formatterformat(calgetTime()));

//输出:修改时间[2] 2009-08-17 10:32:38

}

}

import os,time   

timectime(osstat("c:/1txt")st_mtime) #文件的修改时间   

timectime(osstat("c:/1txt")st_ctime) #文件的创建时间  

  

  

timelocaltime(osstat("F:/logtxt")st_mtime) #文件访问时间 适合计算时间  

  

ModifiedTime=timelocaltime(osstat("F:/logtxt")st_mtime) #文件访问时间  

y=timestrftime('%Y', ModifiedTime)  

m=timestrftime('%m', ModifiedTime)  

d=timestrftime('%d', ModifiedTime)  

H=timestrftime('%H', ModifiedTime)  

M=timestrftime('%M', ModifiedTime)  

  

d2=datetimedatetime((int)y,(int)m,(int)d,(int)H,(int)M)  

同理d1  

  

(d1-d2)seconds #为d1与d2相隔十分钟 !

批处理获取修改时间很容易。。看for帮助: %~tI - 将 %I 扩展到文件的日期/时间这个“日期/时间”就是修改时间。。另外veket_linux大侠的au3有点小笔误:StringCompare($modify_time[$i], $start)<=0应该改成StringCompare($modify_time[$i], $end)<=0。。还有最后一个Msgbox图标用64比较好点。。

1获取文件创建时间示例:

$ctime=filectime("chinawinxptxt");

echo "创建时间:"date("Y-m-d H:i:s",$ctime);

2获取文件修改时间示例:

$mtime=filemtime("chinawinxptxt");

echo "修改时间:"date("Y-m-d H:i:s",$mtime);

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

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

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

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

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

Systemoutprintln(ctime);

想要获得文件的创建时间,那么只能用java去掉命令实现了,若为windows系统,想要拿到创建时间必须依赖Windows系统的API,通过调CMD命令实现, 代码如下:

 public static void main(String[] args) {   

        try {   

            Process p = RuntimegetRuntime()exec("cmd /C dir d:\\testtxt /tc");   

            InputStream is = pgetInputStream();   

            BufferedReader br = new BufferedReader(new InputStreamReader(is));   

            String str;   

            int i = 0;   

            while ((str = brreadLine()) != null) {   

                i++;   

                if (i == 6) {   

                    Systemoutprintln(strsubstring(0, 17));   

                }   

            }   

        } catch (javaioIOException exc) {   

            excprintStackTrace();   

        }   

    }

File file = new File("文件路径");

long time = filelastModified(); //返回此抽象路径名表示的文件最后一次被修改的时间。

Date date = new Date(time); //转换成Date类型, 接下来自己 *** 作

以下批处理能实现:

1、每次检查1txt的修改时间

2、与上一次记录的时间对比

3、相同不做任何处理,不同则在2_logtxt中记1笔时间变化记录

4、更新2txt的时间

请把下面的批处理存为mymonitorbat

@echo off

@if not exist 2txt @for /f "tokens=1,2 delims= " %%a in ('dir d:\1txt^|find "20"') do @echo %%a %%b>2txt

@for /f "tokens=1,2 delims= " %%a in ('dir d:\1txt^|find "20"') do @echo %%a %%b>_2txt

@set /p old= <2txt

@set /p new= <_2txt

@if not %old%==%new% (

@echo Record %date% %time%: file %1 modified time changed to %new%>>2_logtxt

@del 2txt

@ren _2txt 2txt

)

自动发送邮件这个我就没办法了,有个smtpsendexe可以实现cmd下发邮件,但您的域里必须有台smtp服务器才行,如果您有那从网上就能下载,写好命令加到最后一行括号前就行了。

批处理获取修改时间很容易。。看for帮助: %~tI - 将 %I 扩展到文件的日期/时间 这个“日期/时间”就是修改时间。。另外veket_linux大侠的au3有点小笔误: StringCompare($modify_time[$i], $start)

以上就是关于java编写程序获取指定文件的最后修改时间全部的内容,包括:java编写程序获取指定文件的最后修改时间、如何在Python中获取文件创建和修改日期/时间、怎么获取文件修改时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/9433524.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存