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 文件资源管理器中我看不到任何变化(例如 title
和 author
也看不到)。最后修改日期更改为我 运行 代码的时间。
我如何才能持久更改此信息?
编辑:
当我用记事本打开它时,我可以看到这一行:
/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 编辑器工具设置。
我正在编写一个程序来更改目录中所有文件的修改日期。
我可以应用程序运行更改属性,但 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 文件资源管理器中我看不到任何变化(例如 title
和 author
也看不到)。最后修改日期更改为我 运行 代码的时间。
我如何才能持久更改此信息?
编辑:
当我用记事本打开它时,我可以看到这一行:
/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 编辑器工具设置。