Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 修改文件属性/元数据_C#_Pinvoke_File Attributes_File Properties - Fatal编程技术网

C# 修改文件属性/元数据

C# 修改文件属性/元数据,c#,pinvoke,file-attributes,file-properties,C#,Pinvoke,File Attributes,File Properties,我可以通过调用Shell32.Folder.GetDetailsOf来获取文件的属性/元数据,但我似乎不知道如何修改这些属性。我所指的属性是“扩展细节”,如图像文件的相机型号和相机名称。如果您确实在使用C#,那么您必须执行一些Interop/PInvoke来调用该方法,因为这是Shell方法 要获取+设置EXIF信息,可以使用该类(尽管不是最优的),对于标准属性,可以使用该类 可以找到一个非常好的类来处理EXIF相关的内容,包括源代码。无法处理图像,不幸的是,EXIF数据位于图像二进制文件的开头

我可以通过调用
Shell32.Folder.GetDetailsOf
来获取文件的属性/元数据,但我似乎不知道如何修改这些属性。我所指的属性是“扩展细节”,如图像文件的相机型号和相机名称。

如果您确实在使用C#,那么您必须执行一些Interop/PInvoke来调用该方法,因为这是Shell方法

要获取+设置EXIF信息,可以使用该类(尽管不是最优的),对于标准属性,可以使用该类


可以找到一个非常好的类来处理EXIF相关的内容,包括源代码。

无法处理图像,不幸的是,EXIF数据位于图像二进制文件的开头,并且占用固定的空间。
文件夹。GetDetailsOf
是一个vba方法,而不是.NET方法。你把问题加上了C。请澄清。您上一个链接中的类在处理方面当然非常有帮助,但目前它似乎无法设置EXIF信息。另外,为什么
图像
类不适合设置EXIF?使用
图像
类的AFAIK可能会导致重写图像文件,这取决于文件格式等。质量可能会有轻微损失。。。另一点是,它将图像加载到内存中,如果您只想处理EXIF数据,这可能是一个性能问题……看起来使用
image
是我目前唯一的选择。我似乎找不到任何其他可以修改EXIF信息的库或类。如果这是一个选项,我可以给你一些链接,那么有几个商业库或类可用。。。