gpt4 book ai didi

c# - 提取的文件更改修改日期

转载 作者:太空狗 更新时间:2023-10-30 01:03:59 24 4
gpt4 key购买 nike

当我尝试使用 winrar 提取我的文件时,它在 .gz 中保留了文件的修改日期。但是当我使用有效的代码(我从其他博客获得)提取它时:

 public static void Decompress(FileInfo fileToDecompress)
{
using (FileStream originalFileStream = fileToDecompress.OpenRead())
{
string currentFileName = fileToDecompress.FullName;
string date = fileToDecompress.LastWriteTimeUtc.ToString();
MessageBox.Show(date);
string newFileName = currentFileName.Remove(currentFileName.Length - fileToDecompress.Extension.Length);

using (FileStream decompressedFileStream = File.Create(newFileName))
{
using (GZipStream decompressionStream = new GZipStream(originalFileStream, CompressionMode.Decompress))
{
decompressionStream.CopyTo(decompressedFileStream);
Console.WriteLine("Decompressed: {0}", fileToDecompress.Name);
}
}
}
}

它将提取文件的修改日期更改为当前日期,即我提取它的日期和时间。

如何保留文件的修改日期?

例如 .gz 中的文件日期为 8/13/2014 使用 winrar 它没有改变但是当我使用我的代码时它更改为我提取它的当前日期。

最佳答案

从技术上讲是正确的,您不是在提取文件,而是将解压缩的流写入另一个流,在您的情况下是文件。以这种方式查看后,很明显文件的最后写入日期已更改。

如果你希望目标文件的最后写入时间与压缩文件相同,你可以使用File.SetLastWriteTime方法(http://msdn.microsoft.com/en-US/library/system.io.file.setlastwritetime(v=vs.110).aspx):

File.SetLastWriteTimeUtc(newFileName, fileToDecompress.LastWriteTimeUtc);

关于c# - 提取的文件更改修改日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25375392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com