2016-11-05 2 views
0

これは私の初めてのSOFに関する質問です。特定のファイルの詳細を取得する方法を熟知しています。私はこれについて話している:https://i.stack.imgur.com/UYEBR.pngJavaでファイルの「詳細」を取得するには

私はどのようにタイトル、タグ、コメントなどを取得し、それらを操作することができますか?

ありがとうございました。

編集:私の質問では品質が悪いので申し訳ありませんが、私はもう一度試してみます:(私はプログラミング経験の面ではノービーです)。

私の最初の試みはFileクラスを見て、ファイルの "詳細"を見つける方法があるかどうかを調べることでした。これは本当に役に立たなかった。

第二の試み:私はより多くの研究を行うことを試み、プロパティクラスを見つけました:

Properties prop = new Properties(); 
    File y = new File("C:/Users/someImage.jpg"); 
    System.out.println(y.exists()); //check if the file exists 

    FileInputStream in = new FileInputStream(y); 
    prop.load(in); 

    String property = prop.getProperty("Title"); 
    System.out.println(property); //try to see how it works 

私の出力与えた:私はまだどのように私にいくつかのより多くの研究をしています

true 
null 

を上記のファイルの "詳細"を得ることができますが、いくつかの指針は高く評価されます。

+0

あなたの試行を投稿する必要があります。 –

+0

ようこそ@EvanYounan。これらのリンクを読んで質問を改善するには2分ほどかかります。 http://stackoverflow.com/tourおよびhttp://stackoverflow.com/help/how-to-askを参照してください。乾杯! – Tom

+0

このフォーラムディスカッションのように見えます:http://www.codeproject.com/Questions/172608/Getting-file-details-using-java(低回答のユーザー@FlorenceCGの回答からコピーされます。コメント、回答ではありません) –

答えて

0

this similar questionここで、metadata-extractorライブラリが推奨されました。

私は自分でテストをしましたが、うまくいくようです。

この例は、Github source codeから抽出したものです。

は、あなたのニーズに適応するようにしてください:

import com.drew.imaging.ImageMetadataReader; 
import com.drew.imaging.ImageProcessingException; 
import com.drew.metadata.Directory; 
import com.drew.metadata.Metadata; 
import com.drew.metadata.Tag; 
import java.io.File; 
import java.io.IOException; 

public class FilePropertiesTest { 

    public static void main(String[] args) { 
     File file = new File("/Users/name/folder/test.png"); 

     try { 
      Metadata metadata = ImageMetadataReader.readMetadata(file); 
      print(metadata); 
     } catch (ImageProcessingException e) { 
      // handle exception 
     } catch (IOException e) { 
      // handle exception 
     } 
    } 

    private static void print(Metadata metadata) { 
     System.out.println("-------------------------------------"); 

     for (Directory directory : metadata.getDirectories()) { 
      // Each Directory stores values in Tag objects 
      for (Tag tag : directory.getTags()) { 
       System.out.println(tag); 
      } 

      // Each Directory may also contain error messages 
      if (directory.hasErrors()) { 
       for (String error : directory.getErrors()) { 
        System.err.println("ERROR: " + error); 
       } 
      } 
     } 
    } 
} 

私はJPGとPNGファイルを使用してテストしてみました。 print方法によって書かれた 出力は次のように、類似しています

[PNG-IHDR] Image Width - 640 
[PNG-IHDR] Image Height - 960 
[PNG-IHDR] Bits Per Sample - 8 
//... 
[PNG-iCCP] ICC Profile Name - ICC Profile 
//... 
[File] File Name - test.png 
[File] File Size - 1223033 bytes 
[File] File Modified Date - Sun Oct 16 11:24:12 +11:00 2016 

それはあなたが必要とするすべてのプロパティを返した場合、私は知りませんが、それは良い試みです。

幸い、私はそれが何とか役に立ったと思います。

関連する問題