【问题标题】:An example to get last access time of file in java using jdk1.7java中使用jdk1.7获取文件最后访问时间的例子
【发布时间】:2017-03-16 18:16:01
【问题描述】:

请朋友帮忙。我知道使用 jdk1.7 我们可以获得文件的最后访问时间。谁能举个例子来获取文件的最后访问时间?

【问题讨论】:

标签: java


【解决方案1】:

由于您在问题中提到使用 jdk1.7 ,因此您应该真正查看方法 lastAccessTime() 上的接口 BasicFileAttributes 。我不确定你真正的问题是什么,但如果你的意思是你想要一个关于使用 jdk7 读取文件的最后一次访问时间的代码示例,请看下面。

import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.BasicFileAttributes;
import java.nio.file.Files;

/** 
 * compile using jdk1.7
 *
 */
public class ReadFileLastAccess {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception
    {
        Path file_dir = Paths.get("/home/user/");
        Path file = file_dir.resolve("testfile.txt");
        BasicFileAttributes attrs = Files.readAttributes(file, BasicFileAttributes.class);       
        System.out.println("Last accessed at:" + attrs.lastAccessTime());

    }

}

【讨论】:

    【解决方案2】:

    这是一个简单的代码 sn-p 返回上次访问时间:

    public Date getLastAccessTime(String filePath) throws IOException {
        File f = new File(filePath);
        BasicFileAttributes basicFileAttributes = Files.getFileAttributeView(f.toPath(), BasicFileAttributeView.class).readAttributes();
        Date accessTime = new Date(basicFileAttributes.lastAccessTime().toMillis());
        return accessTime;
    }
    

    我已经在 MacOS X 上的 JDK 1.7.0 Developer Preview 上对其进行了测试。

    【讨论】:

    • 我看到方法 getFileAttributeView(f.toPath(), BasicFileAttributeView.class) 要求 3 个参数。为什么会有这种差异?
    • @randeepsp: 最后一个是可变参数
    【解决方案3】:

    这是一个使用编译器版本 1.7 (Java 7) 的类似示例

    import java.nio.file.Files; 
    import java.nio.file.Path; 
    import java.nio.file.Paths;
    import java.nio.file.attribute.BasicFileAttributes; 
    
    class E 
    { 
        public static void main(String[] args) throws Exception 
        { 
            // On Dos (Windows) File system path
            Path p = Paths.get( "C:\\a\\b\\Log.txt"); 
    
            BasicFileAttributes bfa = Files.readAttributes(p, BasicFileAttributes.class); 
    
            System.out.println(bfa.lastModifiedTime()); 
        } 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-01
      • 2016-09-06
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 2021-10-15
      • 1970-01-01
      • 2016-06-15
      相关资源
      最近更新 更多