【问题标题】:C# Compare a URL file with a local fileC# 比较 URL 文件和本地文件
【发布时间】:2012-07-17 21:28:58
【问题描述】:

**大家好,我是 C# 新手,我不知道如何执行以下代码

我需要编写一个代码来验证来自服务器 (URL) 的 30 个文件 以及来自客户端(文件夹)的 30 个文件

然后逐字节比较它们,如果客户端(文件夹)文件被更改/更改/删除,则下载服务器文件...仅此而已...您能帮我吗?我使用了此代码但没有'不起作用...URI不支持错误**

我的代码在这里:http://codeupload.com/6192

如果您有任何其他可能对我有帮助的好主意,请在此处发布

【问题讨论】:

  • 具体是什么错误?不支持 URI 格式?在您的代码中放置一个断点,然后查看您传递的 URL;我猜它看起来不像你想的那样。

标签: c# file url compare filecompare


【解决方案1】:

要逐字节比较它们,您必须下载对象。 如果您不想在不从服务器下载文件的情况下比较它们,则必须使用服务器端脚本。例如,创建一个简单的 php 脚本,为文件创建 MD5 哈希值(文件名在 url 中提供),下载 MD5 文件并将其与本地文件的 MD5 哈希值进行比较。如果他们不同,请下载真实文件。

【讨论】:

    【解决方案2】:

    您应该使用WebClient.DownloadData 方法下载每个文件 (http://msdn.microsoft.com/en-us/library/ms144188.aspx)。

    然后您将获得一个字节数组,您必须将其与本地文件字节数组进行比较(使用File.ReadAllBytes() - http://msdn.microsoft.com/en-us/library/system.io.file.readallbytes.aspx

    【讨论】:

    • 不能用其他方法吗?还是只有一个?
    • 您可以使用其他方法,但我认为您不能使用其他方法来减少代码...所以这些是我建议您使用的方法(以及其他话 - 不要使用流......我认为你不需要它)
    • 嗯,你能给我一个快速代码,将文件复制到临时文件夹,然后检查文件字节是否等于文件夹中的字节,然后如果文件夹中的文件被更改,则复制一个从临时文件夹到文件文件夹,如果没有从临时文件夹中删除文件
    • 或者至少告诉我如何从文件夹中获取所有文件...格式为 file_01,file_02....file_10,file_11...file_30
    • 从目录中获取文件 - Directory.GetFiles() (msdn.microsoft.com/en-us/library/07wt70x2.aspx)
    猜你喜欢
    • 2019-11-20
    • 1970-01-01
    • 1970-01-01
    • 2012-10-23
    • 1970-01-01
    • 2014-05-12
    • 2020-05-19
    • 1970-01-01
    • 2010-11-30
    相关资源
    最近更新 更多