将文件从服务器下载到本地计算机 - 保留原始的上次更新日期

时间:2015-07-29 13:59:02

标签: c# .net file

目前我正在使用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);
        }
    }

1 个答案:

答案 0 :(得分:2)

您可以使用File.GetLastWriteTime获取远程文件的上次更新日期,并将其存储在例如DateTime lastUpdatedDate。然后,在关闭输出流后,您可以使用File.SetLastWriteTime

在新创建的文件上进行设置
File.SetLastWriteTime(@sTargetpath, lastUpdatedDate);

编辑:

正如@HaraldDutch指出的那样,你必须考虑时区。在这种情况下,File.GetLastWriteTimeUTCFile.SetLastWriteTimeUTC使用起来更安全。