C# 复制文件内容而不复制文件属性

C# 复制文件内容而不复制文件属性,c#,asp.net,file,C#,Asp.net,File,在你继续阅读之前,我在上一篇文章中也提出了类似的问题。此问题不特定于任何文件类型(图像、视频、音频、文本、word、excel)。我不是问如何获取文件的扩展属性以及如何设置它们 是否可以将文件内容从一个文件复制到另一个文件,而不复制文件的扩展属性 请查看下面的图片,了解我所说的扩展属性 注意:忽略突出显示。这里没有任何意义 我想要文件内容,但我不想得到标题、主题、评级、标签、评论、作者等(没有任何属性,无论文件类型如何) 谢谢。复制文件后,您可能会发现修改扩展属性更容易。看看这个类,它有设置修

在你继续阅读之前,我在上一篇文章中也提出了类似的问题。此问题不特定于任何文件类型(图像、视频、音频、文本、word、excel)。我不是问如何获取文件的扩展属性以及如何设置它们

是否可以将文件内容从一个文件复制到另一个文件,而不复制文件的扩展属性

请查看下面的图片,了解我所说的扩展属性

注意:忽略突出显示。这里没有任何意义

我想要文件内容,但我不想得到标题、主题、评级、标签、评论、作者等(没有任何属性,无论文件类型如何)


谢谢。

复制文件后,您可能会发现修改扩展属性更容易。看看这个类,它有设置修改日期的方法,等等

对于标题等,您必须使用COM,shell32.dll将允许您执行以下操作:

要更改这些属性,您必须使用另一个COM组件。看起来dsofile.dll将为您执行此操作。有一篇关于它的MS KB文章


您也可以查看一下,尽管我不知道它是否具有通用性。

这些可能会在图像中得到强化。您尝试过逐字节复制吗?这取决于文件的类型。一些文件在文件本身中保存额外的数据,而另一些文件使用备用文件流保存数据。对于在文件中包含额外信息的文件,没有通用的解决方案。@DStanley我不同意你说的另一篇文章是重复的,这个问题是专门询问清除文件元数据,而不是如何首先复制文件。如果您使用副本中说明的方法复制MP3文件,您仍然会显示所有ID3扩展信息。@ScottChamberlain足够公平。我使用Shell32.dll,COM获取文件扩展属性的可能副本。它工作得很好,但无法将属性写回文件或修改它们。如果我错了,请纠正我。我已经使用dsofile.dll进行了检查,但它不适用于所有文件类型(甚至不适用于.docx文件)。TagLib提供常用的文件格式,但不包括所有类型。dosfile.dll上次修改是在2007年5月1日15:22。现在已经6年多了。应该有一些新的方法,这就是我试图找到的。元数据至少在2001年Windows XP中就已经存在,所以为了保持兼容性,我不希望有任何新的方法存在。根据本文,这似乎是一个NTFS特性:这可能提供进一步的见解。源代码可能对您有所帮助。感谢您提供的解决方案,很高兴与您讨论。我最终使用TagLib作为媒体文件。