gpt4 book ai didi

java - 如何在Java中获取文件的 "details"

转载 作者:行者123 更新时间:2023-12-01 09:17:34 25 4
gpt4 key购买 nike

这是我第一次问有关 SOF 的问题,我被困在如何获取某个文件的详细信息上。我说的是这个:/image/UYEBR.png

我如何获取标题、标签、评论等并能够操纵它们?

谢谢。

编辑:很抱歉我的问题质量不够,我会再试一次:(请考虑到我在编程经验方面是个菜鸟)。

我的第一次尝试是查看 File 类,看看它是否有任何方法可以找到文件的“详细信息”。这并没有多大帮助。

第二次尝试:我尝试做更多研究并找到了 Properties 类:

    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

我仍在对如何获取任何上述文件的“详细信息”进行更多研究,但如果能提供一些指导,我们将不胜感激。

最佳答案

我找到了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

我不知道它是否返回您需要的所有属性,但这是一个很好的尝试。

祝你好运,希望对你有所帮助。

关于java - 如何在Java中获取文件的 "details",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40434592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com