目前我正在使用httpwebrequest以及响应和文件流下载文件,并且文件的上次更新日期将更改为服务器的当前日期。我可以阻止这个吗?
using (FileStream fileStream = File.Create(@sTargetPath))
{
Sys.Log2(20, "Filestream - copying starts");
fileCopy(responseStream, fileStream);
}
public static void fileCopy(Stream input, Stream output)
{
byte[] buffer = new byte[3024];
int bytesRead;
while ((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0)
{
output.Write(buffer, 0, bytesRead);
}
}
答案 0 :(得分:2)
您可以使用File.GetLastWriteTime
获取远程文件的上次更新日期,并将其存储在例如DateTime lastUpdatedDate
。然后,在关闭输出流后,您可以使用File.SetLastWriteTime
:
File.SetLastWriteTime(@sTargetpath, lastUpdatedDate);
编辑:
正如@HaraldDutch指出的那样,你必须考虑时区。在这种情况下,File.GetLastWriteTimeUTC
和File.SetLastWriteTimeUTC
使用起来更安全。