在所有类型的文件上写入文件扩展属性“修订号”

     2023-03-28     15

关键词:

【中文标题】在所有类型的文件上写入文件扩展属性“修订号”【英文标题】:Write file extended property "Revision Number" on all type of files 【发布时间】:2011-12-05 11:13:06 【问题描述】:

我想用c#读/写窗口信息文件(扩展文件属性)

通过执行以下操作找到的:在窗口资源管理器中右键单击 => 属性 => 摘要选项卡。我主要想访问这些属性:

标题 类别 修订号

对于办公文档,我可以使用以下(使用 Office.Interop)或使用 DSOFile

    private static string GetExcelWorkbookPropertyValue(_Workbook workbook, string propertyName)
    
        DocumentProperties builtInProperties = (DocumentProperties)workbook.BuiltinDocumentProperties;
        string value = builtInProperties.Cast<DocumentProperty>().First(x => x.Name.Equals(propertyName, StringComparison.InvariantCultureIgnoreCase)).Value;
        return value ?? "";
    

但我想要一个更通用的解决方案,适用于所有文件。

有人可以帮忙吗?

问题附加信息您也可以使用 Shell32 读取属性 Title 和 Category

        Shell32.Shell shell = new Shell32.Shell();
        //set the namespace to file path
        Shell32.Folder folder = shell.NameSpace(Path.GetDirectoryName(file));
        //get ahandle to the file
        Shell32.FolderItem folderItem = folder.ParseName(Path.GetFileName(file));
        //did we get a handle ?
        if (folderItem != null)
        
            for (int i = 0; i < 100; i++)
            
                string s = folder.GetDetailsOf(folderItem, i);
                System.Diagnostics.Debug.WriteLine(s);
            
        

但是我还是写了属性Revision Number,但是看起来Revision number是office文档的属性,不能写(估计会破坏office的跟踪过程)。

没有意义的是我可以使用窗口资源管理器对其进行修改,并且该属性对于非办公文档也是可见的......我很难理解这一点。

【问题讨论】:

Read/Write 'Extended' file properties (C#) 的可能重复项 @Alex K:有了你的参考,我可以阅读属性 Title 和 Category 但仍然可以阅读 Revision Number 也不能写出所有这些 完全重复:***.com/questions/220097/…,***.com/questions/5337683/… @Dementic 这些帖子允许我阅读属性,确实我的问题反映了这些帖子中写的内容,但我的最终目标是在文档上写下修订号,看起来像他们不提供答案。我将文本更改为写入文件扩展属性。如果您有更好的措辞,请随意填写以更改/提交。 @Dementic:我阅读了这两篇文章,并尝试了各种方法,但无济于事。 dsofile 允许您编写一堆属性(例如标题、命令...),但不能编写 revisioNumber。此外,dsofile 是面向 OLE 文档属性的,我想要一个更通用的解决方案,shell32 提供给我,但我只能找到一种读取属性的方法)。我已经找到了一种解决方法,我很乐意接受它,我只是想知道是否可以在所有类型的文件上编写修订号。如果你认为这个问题很愚蠢或者认为有人已经回答了这个问题,我会删除它。 【参考方案1】:

此信息存储在properties 中。这里有一些standard properties。不过,我不确定 .NET Framework 是否提供了围绕这些接口的包装器。

【讨论】:

谢谢,这是正确的方向,但是在各种网站上进行了大量阅读之后,我认为这不是一个明智的决定。就我而言,我想使用这些属性来标记一些文件信息(ntfs依赖...),有关更多信息,您还可以阅读users.telenet.be/ws36637/properties.html,forensicfocus.com/dissecting-ntfs-hidden-streams ...

在 OS X 上将扩展属性写入文件

】在OSX上将扩展属性写入文件【英文标题】:WritingextendedattributestofilesonOSX【发布时间】:2016-02-0123:17:33【问题描述】:我试图在命令行中使用setfattr命令,但它告诉我commandnotfound。我假设这意味着该软件包未安装,但是据我了解... 查看详情

在 SVN 中添加带有修订号的文件

】在SVN中添加带有修订号的文件【英文标题】:ToaddafilewitharevisionnumberoncommitinSVN【发布时间】:2012-02-0919:26:29【问题描述】:我不确定这是否可以通过Subversion实现,但有没有办法在提交时添加带有修订号的文件?文件名:revision... 查看详情

在 CVS 中移动文件而不重置修订号

】在CVS中移动文件而不重置修订号【英文标题】:MoveafileinCVSwithoutresettingtherevisionnumber【发布时间】:2010-09-1302:53:05【问题描述】:最近我一直在我们的源代码树中移动源文件。例如,将一堆文件放入一个通用程序集中。我一直... 查看详情

java示例代码_在Java类文件中插入Java代码文件的修订号

java示例代码_在Java类文件中插入Java代码文件的修订号 查看详情

svn - 基于文件的修订号而不是 repo

】svn-基于文件的修订号而不是repo【英文标题】:svn-file-basedrevisionnumberinsteadoftherepo【发布时间】:2016-02-2409:21:49【问题描述】:有什么方法可以让每个文件的修订号增加,而不是在整个存储库上增加?一个更简单的说法可能是... 查看详情

使用批处理文件在目录下递归删除所有特定类型(扩展名)的文件

】使用批处理文件在目录下递归删除所有特定类型(扩展名)的文件【英文标题】:Deleteallfilesofspecifictype(extension)recursivelydownadirectoryusingabatchfile【发布时间】:2012-10-1920:02:55【问题描述】:我需要删除dir1和dir2中的所有.jpg和.txt... 查看详情

subversion - 从匹配模式中获取修订号

...发布时间】:2017-12-0106:38:11【问题描述】:问题:在这个文件上做了一些不寻常的提交,没有人知道是谁提交的,svnlog/path/of/file给出了很长的列表。这会耗费大量时间。预期结果:所以基本上我试图找到一种方法来在文件中提... 查看详情

批处理脚本 - 将在一个目录中找到的所有文件写入一个命令行?

】批处理脚本-将在一个目录中找到的所有文件写入一个命令行?【英文标题】:batchscript-writeallfilesfoundinonedirectoryintoonecommandline?【发布时间】:2020-10-0218:13:02【问题描述】:我有一个目录,里面有一堆混合了扩展名的文件。我... 查看详情

在不同线程上写入多个表

...将整个csv文件保存在内存中。如果写入1个表时出错,则所有表都必须回滚其事务。我正在传递令牌源,因 查看详情

linux文件系统基础知识

...ata总是与文件一起写入存储设备,改变文件的操作要等到所有meta-data的操作都完成后才能进行,  因此,meta-data的操作会明显降低整个文件系统的性能。  扩展分配:文件创建时,一次性分配一连串连续的块,当文件扩展时... 查看详情

如何在 Visual Studio Code 中列出/搜索特定类型的所有文件

】如何在VisualStudioCode中列出/搜索特定类型的所有文件【英文标题】:HowdoIlist/searchallfilesofaspecifictypeinVisualStudioCode【发布时间】:2021-02-1517:19:45【问题描述】:我想查看我的项目中具有特定扩展名的所有文件的过滤列表。由于我... 查看详情

java示例代码_在Android上查找具有特定扩展名的所有文件

java示例代码_在Android上查找具有特定扩展名的所有文件 查看详情

在 VS2019 中使用 .Net Core 格式的项目文件时如何自动增加包版本修订号

】在VS2019中使用.NetCore格式的项目文件时如何自动增加包版本修订号【英文标题】:HowdoIautoincrementthePackageVersionrevisionnumberwhenusinga.NetCoreformatprojectfileinVS2019【发布时间】:2019-08-2711:49:26【问题描述】:此问题的先前答案是指编辑A... 查看详情

无法在额外属性扩展上获取属性“compileSdkVersion”,因为它不存在 打开文件

...性扩展上获取属性“compileSdkVersion”,因为它不存在打开文件【英文标题】:Cannotgetproperty\'compileSdkVersion\'onextrapropertiesextensionasitdoesnotexistOpenFile【发布时间】:2018-05-1902:39:24【问题描述】:我将从GitHub下载的项目作为模块导入到... 查看详情

linux-linux中的权限机制(代码片段)

...以另一个用户的身份执行命令)chown(更改文件的所有者)passwd(更改用户密码)从文件属性看权限列在输出结果中的前10个字符表示的是文件属性,其中第一个字符表示文件类型,其余9个字符称为文... 查看详情

地球上所有 MimeType 的列表,映射到文件扩展名? [关闭]

】地球上所有MimeType的列表,映射到文件扩展名?[关闭]【英文标题】:ListofALLMimeTypesonthePlanet,mappedtoFileExtensions?[closed]【发布时间】:2010-12-1616:17:49【问题描述】:是否有列出所有现有mimeType的资源?我发现一些地方的mimeType少于... 查看详情

在 iOS 上识别我的不带文件扩展名的 mime 类型

】在iOS上识别我的不带文件扩展名的mime类型【英文标题】:RecognizemymimetypewithoutfileextensionsoniOS【发布时间】:2012-05-2200:17:02【问题描述】:我正在编写一个需要识别我的自定义mime类型的应用程序,以便在从服务器下载此类文件... 查看详情

flowable入门(四)增加自定义类型的扩展属性

...增加扩展属性定义id:自定义的属性idtype:指向自定义的类型找到文件resources/static/editor-app/configuration/properties.js在文件中追加自定义类型的注册信息注意:此处的属性名称“flowable-mypropertytype”,是约定好的书写格式,是定义的pro... 查看详情