C# 如果某个文件的内容长度大于本地副本,或者该文件已被修改,如何指定应提取该文件?
我知道如何发出一个请求,上面写着“仅当文件自某个特定日期以来已被修改时才获取该文件” 但是,假设出现这种情况- 本地文件自上次写入后未被修改,但上次从服务器下载时,文件不完整。换句话说,本地文件中的内容长度与服务器上文件中的内容长度不同 因此,我想指定,如果服务器上的内容长度与本地计算机上的内容长度不同,那么应该从服务器获取文件C# 如果某个文件的内容长度大于本地副本,或者该文件已被修改,如何指定应提取该文件?,c#,http,http-headers,httpwebrequest,httpwebresponse,C#,Http,Http Headers,Httpwebrequest,Httpwebresponse,我知道如何发出一个请求,上面写着“仅当文件自某个特定日期以来已被修改时才获取该文件” 但是,假设出现这种情况- 本地文件自上次写入后未被修改,但上次从服务器下载时,文件不完整。换句话说,本地文件中的内容长度与服务器上文件中的内容长度不同 因此,我想指定,如果服务器上的内容长度与本地计算机上的内容长度不同,那么应该从服务器获取文件 我该怎么做 对于您的场景,仅使用HTTP,我将检查文件长度头: string length = response.Headers[HttpRespons
我该怎么做 对于您的场景,仅使用HTTP,我将检查文件长度头:
string length = response.Headers[HttpResponseHeader.ContentLength];
因此,您将从一开始就知道该文件的长度。如果它太短,那么它是不完整的,您需要再次下载
如果您更关心文件的内容,还可以检查MD5:
string md5 = response.Headers[HttpResponseHeader.ContentMd5];
如果您坚持请求条件,您可以尝试HTTP头如果范围。W3C将其描述为:
。。。
非正式地说,它的意思是“如果实体没有改变,请将我缺少的部分发送给我;否则,请将整个新实体发送给我”。
检查并查看您的选项。您想要任何方法来实现这一点,或者您只需要使用HttpWebRequesty来实现这一点?HttpWebRequest会更好。但是如果没有,我知道如何用最艰难的方式去做!
string md5 = response.Headers[HttpResponseHeader.ContentMd5];