0

I am trying to read the metadata from a .tif file using the Metadata Extractor dll and I keep getting a FileIsNotFoundException. It works fine when I try the same code using a .jpeg file.

FileStream OriginalFile = new FileStream(FullPath, FileMode.Open, FileAccess.Read, FileShare.Read);
IEnumerable<MetadataExtractor.Directory> directories = ImageMetadataReader.ReadMetadata(OriginalFile);
foreach (var directory in directories)
    foreach (var tag in directory.Tags)
        Console.WriteLine($"{directory.Name} - {tag.Name} = {tag.Description}");

Edit: I re-installed the package and now have the XmpCore.dll inside the packages folder of my project but I still see the same exception as before. Works fine for .jpeg and .psd files.

Exception thrown when trying open a .tiff image

4

2 回答 2

0

FileNotFoundException 意味着您的 FullPath 不包含实际在磁盘上的文件。

尝试添加:

Console.WriteLine(FullPath);
Console.WriteLine(File.Exists(FullPath));

还要仔细检查 .tif 和 .tiff。

编辑您的屏幕截图显示丢失的文件是XmpCore.dll. 当您添加对 的 NuGet 引用时MetadataExtractor,您还应该选择XmpCore.

这是一个例子packages.config

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="MetadataExtractor" version="1.5.3" targetFramework="net45" />
  <package id="SharpZipLib" version="0.86.0" targetFramework="net45" />
  <package id="XmpCore" version="1.2.2" targetFramework="net45" />
</packages>

确保您也有相关的项目参考资料。

使用上述内容构建新的 .NET 4.5 控制台项目后packages.configbin/Debug文件夹如下所示:

在此处输入图像描述

packages以及文件夹的内容:

在此处输入图像描述

于 2016-10-20T07:57:58.557 回答
0

我通过在解决方案资源管理器中的引用下将 XmpCore 的 Copy Local 属性更改为 True 来解决异常。

于 2016-10-20T19:36:37.860 回答