PdfSharp 不会更改文件系统信息

PdfSharp does not change file system info

我正在编写一个程序来更改目录中所有文件的修改日期。

我可以应用程序运行更改属性,但 windows 无法识别它。

private static void ChangeDateTypeOfFile(DateTime date, string filepath)
{
    int state = PdfReader.TestPdfFile(filepath);
    if (state != 0)
    {
        System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
        PdfDocument doc = PdfReader.Open(filepath);
        doc.Info.ModificationDate = date;
        doc.Save(filepath);
    }
    else
    {
        Console.WriteLine(state);
    }
}

当我在更改它之前和之后阅读 属性 时,我可以看出其中的区别并且它似乎有效。然而在 Windows 文件资源管理器中我看不到任何变化(例如 titleauthor 也看不到)。最后修改日期更改为我 运行 代码的时间。
我如何才能持久更改此信息?

编辑:
当我用记事本打开它时,我可以看到这一行:

/ModDate(D:20070129000000+01'00') //Set the date to 2007

为什么文件资源管理器不显示此信息?

感谢Antry的评论:

private static void ChangeDate(DateTime date, string filepath)
{
    File.SetLastWriteTime(filepath, date);
}

PdfSharp 对于这个任务来说有点过分了。

Why does the file Explorer not display this information?

因为您的代码正在设置 PDF 的内部 修改日期,所以它作为元数据存储在该 PDF 中。这个日期故意与 Windows' 文件时间戳无关,因为这些可以很容易地通过各种工具设置为任意值,而 PDF 修改日期只能通过 PDF 编辑器工具设置。