Adding metadata properties is the most sophisticated feature of the GroupDocs.Metadata search engine. When you call the addProperties method it examines all available metadata packages and tries to pick up a known property that would satisfy the specified predicate. Note that the property will be added to metadata packages that fit the following criteria:
Only existing metadata packages will be affected. No new packages are added during this operation
There should be a known metadata property in the package structure that fits the search condition but is actually missing in the package. All properties supported by a certain package are usually defined in the specification of a particular metadata standard
advanced_usage.AddingMetadata
Filefolder=newFile(Constants.InputPath);for(Filefile:folder.listFiles()){try(Metadatametadata=newMetadata(file.getAbsolutePath())){if(metadata.getFileFormat()!=FileFormat.Unknown&&!metadata.getDocumentInfo().isEncrypted()){System.out.println();System.out.println(file.getName());// Add a property containing the file last printing date if it's missing// Note that the property will be added to metadata packages that satisfy the following criteria:// 1) Only existing metadata packages will be affected. No new packages are added during this operation// 2) There should be a known metadata property in the package structure that fits the search condition but is actually missing in the package.// All properties supported by a certain package are usually defined in the specification of a particular metadata standardintaffected=metadata.addProperties(newContainsTagSpecification(Tags.getTime().getPrinted()),newPropertyValue(newDate()));System.out.println(String.format("Affected properties: %s",affected));metadata.save(Constants.OutputPath+"output."+FilenameUtils.getExtension(file.getName()));}}}
More resources
GitHub examples
You may easily run the code above and see the feature in action in our GitHub examples: