将文件标记为由我的应用创建

时间:2015-06-09 19:41:35

标签: c# .net file pdf

我的应用程序使用一些私有程序集创建一些pdf文件,然后通过在第二个应用程序文件夹中复制它们将它们发送到另一个应用程序。

过了一段时间我需要回来拿到我的文件并更新它们,事情就是同时可以添加一些其他pdf文件而不是我的文件,我需要只使用我的pdf文件。

我的问题是,如何轻松识别我的文件?我应该为他们使用特定的名称吗?我应该创建一个文件来存储我的文件名吗?或者是否可以将文件签名为"我的文件" (不使用证书或第三方软件)?

请注意我使用的是C#和.NET的最新版本。

3 个答案:

答案 0 :(得分:1)

实际上有三种方式:

  • 将签名和属性写入PDF文件,然后回读。这需要使用专门的第三方PDF库来编写,读取,添加签名到PDF;
  • 维护一个单独的XML文件,其中包含上次更新,版本,CRC或MD5值等详细信息,以确保文件未更改。所以你有例如MyDocument.pdf和MyDocument.pdf.xml,您可以在文件夹中搜索所有.pdf.xml文件,然后只需将.pdf.xml更改为.pdf扩展名即可获取原始pdf文件名。这种方式不需要实现任何第三方组件。您也可以sign XML file确保它未被修改。
  • 最简单的方法是使用文件名来存储附加信息和CRC或MD5 hash值(以保持完整性)。例如,您可以命名“MyApp_15-06-2015-e4d909c290d0fb1ca068ffaddf22cbd0.pdf”等文件并扫描文件“MyApp _ * .pdf”,然后解析文件名以获取日期和散列或CRC值。这种方式可以使用.NET完成,也不需要第三方库。

答案 1 :(得分:0)

尝试这样的事情:

void Main()
{
    var myfile = "somefile.pdf";
    File.WriteAllBytes(myfile+".myfile","");
}

然后你只需找到你的" myfiles"

Directory.GetFiles("path","*.myfile")

基本上,您正在创建一个零字节文件,其中包含原始文件的名称。一旦你拥有了所有" * .myfile"文件返回..您可以通过删除" .myfile"来获取原始文件。从名称中删除' myfile'完成处理后的版本。

答案 2 :(得分:0)

设置“Producer”文档信息属性。