web-dev-qa-db-fra.com

Obtenez les métadonnées d'un fichier

Est-il possible de connaître les métadonnées d'un fichier en java? et si c'est le cas, comment obtenir les métadonnées d'un fichier en java?

19
josemm1790

Il existe un ensemble de métadonnées de base que vous pouvez obtenir à partir d'un fichier.

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());

Certaines choses dépendent de la plate-forme et peuvent lever des exceptions ou renvoyer des résultats inattendus.

Vous pouvez en savoir plus sur Gestion des métadonnées (attributs de fichier et de magasin de fichiers) .

31
Beau Grantham

FITS est une application en ligne de commande qui regroupe de nombreux outils qui peuvent identifier et caractériser des fichiers (extraire des métadonnées). Il a également une API Java

Il existe également de nombreux outils d'identification et de caractérisation qui peuvent effectuer des tâches similaires. Apache Tika, Pronom Droid, Jhove, etc.

6
peshkira

Récupère les métadonnées des fichiers à partir de 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")));
   }
}
3
Mayur Laniya

Je pense qu'il est facile d'utiliser ce projet suivant pour obtenir des informations à partir de n'importe quel fichier.

import Java.io.File;

public class FileInfo{
    public static void main (String []args){
        File f = new File("file100.txt");
        if(f.exists()){
            System.out.println("Name: "+ f.getName());
            System.out.println("Path: "+ f.getAbsolutePath());
            System.out.println("Size: "+ f.length());
            System.out.println("Writeable: "+ f.canWrite());
            System.out.println("Readable: "+ f.canRead());
        }else{
            System.out.println("The File does not exist");
        }
    }
}
0