jpgファイルが作成された日付を抽出したいと思います。Java には File オブジェクトの lastModified メソッドがありますが、ファイルから作成日を抽出するためのサポートを提供していないようです。Win XP でマウス ポインタをファイルに合わせたときに表示される日付は、DOS でファイルに "dir /TC" を指定して JNI を使用して取得できる日付とは異なるため、情報はファイル内に保存されていると思います。
13763 次
5 に答える
12
情報は、 EXIFまたはリンク テキストと呼ばれる形式で画像内に保存されます。この形式のように、この形式を読み取ることができるライブラリがいくつかあります
于 2008-09-17T14:32:26.467 に答える
6
日付はjpegのEXIFデータに格納されます。役立つかもしれないJava ライブラリと Java のビューアーがあります。
于 2008-09-17T14:27:34.950 に答える
4
このメタデータ ライブラリを使用します: http://www.drewnoakes.com/code/exif/
すべての JPEG 画像にこの情報が含まれているわけではないため、100% 絶対確実というわけではないことに注意してください。
EXIF メタデータに作成日が含まれていない場合は、Runtime.exec(...) に頼り、システム関数を使用して調べる場合を除き、おそらく Java の lastUpdated で間に合わせる必要がありますただし、これはお勧めしません!)
于 2008-09-17T14:30:41.637 に答える
0
おそらく、 exifデータにアクセスするために何かが必要です。Google はこのライブラリを提案しています。
于 2008-09-17T14:28:23.310 に答える
0
以下のコード例では、ユーザーにファイル パスを尋ね、作成日時を出力します。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(final String[] args) {
try {
// get runtime environment and execute child process
Runtime systemShell = Runtime.getRuntime();
BufferedReader br1=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter filename: ");
String fname=(String)br1.readLine();
Process output = systemShell.exec("cmd /c dir /a "+fname);
// open reader to get output from process
BufferedReader br = new BufferedReader (new InputStreamReader(output.getInputStream()));
String out="";
String line = null;
int step=1;
while((line = br.readLine()) != null )
{
if(step==6)
{
out=line;
}
step++;
} // display process output
try{
out=out.replaceAll(" ","");
System.out.println("CreationDate: "+out.substring(0,10));
System.out.println("CreationTime: "+out.substring(10,15));
}
catch(StringIndexOutOfBoundsException se)
{
System.out.println("File not found");
}
}
catch (IOException ioe){ System.err.println(ioe); }
catch (Throwable t) { t.printStackTrace();}
}
}
于 2008-09-17T14:38:01.057 に答える