它可以知道在Java中的文件的元数据? 如果是,如何获得Java中的文件的元数据?
Answer 1:
有一个基本的设置,你可以从一个文件中获取元数据。
Path file = ...;
BasicFileAttributes attr = Files.readAttributes(file, BasicFileAttributes.class);
System.out.println("creationTime: " + attr.creationTime());
System.out.println("lastAccessTime: " + attr.lastAccessTime());
System.out.println("lastModifiedTime: " + attr.lastModifiedTime());
System.out.println("isDirectory: " + attr.isDirectory());
System.out.println("isOther: " + attr.isOther());
System.out.println("isRegularFile: " + attr.isRegularFile());
System.out.println("isSymbolicLink: " + attr.isSymbolicLink());
System.out.println("size: " + attr.size());
有些东西是与平台相关的,可能会抛出异常或返回意外的结果。
你可以阅读更多的管理元数据(文件和文件存储的属性) 。
Answer 2:
FITS是一个命令行的应用程序,捆绑许多工具,可以鉴定和表征文件(提取元数据)。 它也有一个Java API
- http://code.google.com/p/fits/
- http://code.google.com/p/fits/wiki/developer_documentation
也有众多的鉴定和表征工具,可以做类似的任务。 阿帕奇提卡,PRONOM的Droid,Jhove等。
Answer 3:
获得从Java程序文件的元数据
package demo.test;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.BasicFileAttributeView;
import java.nio.file.attribute.BasicFileAttributes;
import java.nio.file.attribute.FileTime;
import java.text.SimpleDateFormat;
public class FileCreationTime {
public String getCreationDetails(File file)
{
try{
Path p = Paths.get(file.getAbsolutePath());
BasicFileAttributes view
= Files.getFileAttributeView(p, BasicFileAttributeView.class)
.readAttributes();
FileTime fileTime=view.creationTime();
return (""+new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format((fileTime.toMillis())));
}
catch(IOException e){
e.printStackTrace();
}
return "";
}
public static void main(String...str){
System.out.println
(new FileCreationTime().getCreationDetails(new File("D:/connect.png")));
}
}
Answer 4:
在Java 7,你有NIO2包,用新的Path.class给所有你正在寻找
文章来源: Get the metadata of a file