Java 从文件属性检索标记列表
我想以编程方式检索Windows 7中附加到文件的标记列表。我试图创建一个文件->标记的映射,我可以在不同的平台上移动 有人知道库吗,或者知道从命令行获取“标记”值的方法吗?到目前为止,我只能找到获取基本文件属性的方法,如作者、创建日期等 很遗憾,我无法在计算机上加载PowerShell脚本,因此无法使用这些功能 我尝试使用“UserDefinedFileAttributeView”,但没有返回任何值,如下所示:Java 从文件属性检索标记列表,java,windows,Java,Windows,我想以编程方式检索Windows 7中附加到文件的标记列表。我试图创建一个文件->标记的映射,我可以在不同的平台上移动 有人知道库吗,或者知道从命令行获取“标记”值的方法吗?到目前为止,我只能找到获取基本文件属性的方法,如作者、创建日期等 很遗憾,我无法在计算机上加载PowerShell脚本,因此无法使用这些功能 我尝试使用“UserDefinedFileAttributeView”,但没有返回任何值,如下所示: private LinkedList<String> windo
private LinkedList<String> windowsGetAllFileTags(File file) {
UserDefinedFileAttributeView fileAttributeView = Files.getFileAttributeView(file.toPath().toAbsolutePath(), UserDefinedFileAttributeView.class);
List<String> allAttributes = null;
try {
allAttributes = fileAttributeView.list();
} catch (IOException e) {
e.printStackTrace();
}
for(String attribute : allAttributes) {
System.out.println("Attribute = " + attribute);
}
return null;
}
私有链接列表windowsGetAllFileTags(文件){
UserDefinedFileAttributeView fileAttributeView=Files.getFileAttributeView(file.toPath().toabsolutionPath(),UserDefinedFileAttributeView.class);
列出所有属性=null;
试一试{
allAttributes=fileAttributeView.list();
}捕获(IOE异常){
e、 printStackTrace();
}
for(字符串属性:allAttributes){
System.out.println(“属性=”+属性);
}
返回null;
}
怎么样
我没有试过,但这可能有用:
Files.getAttribute(path.get(“/some/dir”,“file.txt”),“description:tags”)
怎么办
我没有试过,但这可能有用:
Files.getAttribute(path.get(“/some/dir”,“file.txt”),“description:tags”)
在Windows PowerShell中,您可以通过以下方式获取它:
然后使用类似于:
$Tags = Get-ImageTags -Path path\to\file.jpeg
在Windows PowerShell中,
$Tags
变量现在将包含一个标签数组,您可以通过以下方式获取它:
然后使用类似于:
$Tags = Get-ImageTags -Path path\to\file.jpeg
$Tags
变量现在将包含一个标签数组上有一个Java库,名为PE/COFF 4J
如果您提到获取图像或视频的标签,您已经编写了名为as的Java库 要迭代文件中的所有值,请执行以下操作:
for (Directory directory : metadata.getDirectories()) {
for (Tag tag : directory.getTags()) {
System.out.println(tag);
}
}
您还可以从特定目录中读取特定值:
// obtain the Exif SubIFD directory
ExifSubIFDDirectory directory
= metadata.getFirstDirectoryOfType(ExifSubIFDDirectory.class);
// query the datetime tag's value
Date date = directory.getDate(ExifSubIFDDirectory.TAG_DATETIME_ORIGINAL);
Maven用户也可以使用该库
有一个Java库编写并称为
PE/COFF 4J
on
如果您提到获取图像或视频的标签,您已经编写了名为as的Java库 要迭代文件中的所有值,请执行以下操作:
for (Directory directory : metadata.getDirectories()) {
for (Tag tag : directory.getTags()) {
System.out.println(tag);
}
}
您还可以从特定目录中读取特定值:
// obtain the Exif SubIFD directory
ExifSubIFDDirectory directory
= metadata.getFirstDirectoryOfType(ExifSubIFDDirectory.class);
// query the datetime tag's value
Date date = directory.getDate(ExifSubIFDDirectory.TAG_DATETIME_ORIGINAL);
Maven用户也可以使用该库
为什么要同时标记
java
和powershell
?你们两个都想要什么?另外,请提供您迄今为止所取得的成就(发布代码)。我正在考虑使用其中一种解决方案,或者也可以,但是在研究之后,由于权限不足,我无法使用PowerShell加载脚本。将删除标记。我非常怀疑文件。getFileAttributeView
是否是您所需要的。文件属性与文件的目录条目一起存储。它们是权限和只读标志之类的东西。您所追求的是存储在JPG和其他类型媒体文件内容中的元数据。您需要查找第三方库。为什么要同时标记java
和powershell
?你们两个都想要什么?另外,请提供您迄今为止所取得的成就(发布代码)。我正在考虑使用其中一种解决方案,或者也可以,但是在研究之后,由于权限不足,我无法使用PowerShell加载脚本。将删除标记。我非常怀疑文件。getFileAttributeView
是否是您所需要的。文件属性与文件的目录条目一起存储。它们是权限和只读标志之类的东西。您所追求的是存储在JPG和其他类型媒体文件内容中的元数据。您需要查找第三方库。遗憾的是,“description”不是有效视图,我将尝试查找更多示例-可能description不是视图问题的正确名称。遗憾的是,“description”不是有效视图,我将尝试查找更多示例-可能说明不是视图问题的正确名称。我的错误是,我以为我可以使用PowerShell,但由于用户限制,我无法加载ps文件。PowerShell.exe-ExecutionPolicy Bypass
我的错误,我原以为我可以使用PowerShell,但由于用户限制,我无法加载ps文件。PowerShell.exe-ExecutionPolicy Bypass
这仅适用于可执行映像。OP似乎在询问JPG、MP4等文件类型。@谢谢!元数据提取器库工作得很好。它仅适用于可执行映像。OP似乎在询问JPG、MP4等文件类型。@谢谢!元数据提取器库工作得非常好。
// obtain the Exif SubIFD directory
ExifSubIFDDirectory directory
= metadata.getFirstDirectoryOfType(ExifSubIFDDirectory.class);
// query the datetime tag's value
Date date = directory.getDate(ExifSubIFDDirectory.TAG_DATETIME_ORIGINAL);