С помощью этого класса я пытаюсь сделать сегодня сравнения:Как я могу сравнить, если последнее загруженное изображение спутника и текущее загруженное изображение спутника идентичны или нет?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
using mws;
using System.Data.SqlClient;
using System.Text.RegularExpressions;
using DannyGeneral;
namespace General_utility
{
static class File_Utility
{
static public bool File_Comparison(string Filename_1, string Filename_2)
{
FileInfo fi;
int i;
byte[] a,b;
a=File.ReadAllBytes(Filename_1);
b=File.ReadAllBytes(Filename_2);
fi = new FileInfo(a.ToString());
if (a.Length != b.Length)
{
return false;
}
else
{
for (i = 0; i < a.Length; i++)
{
if (a[i] != b[i])
return false;
}
}
return true;
}
}
}
Тогда я использую это так:
file_compare = File_Utility.File_Comparison(temp_sat_dir, last_file_satellite);
file_compare является BOOL temp_sat_dir является текущий загруженный файл: C: \ Users \ temp \ satellite.jpg
Файл в temp_sat_dir будет иметь одно и то же имя.
И last_file_satellite последний файл, загруженный и что я скопировал в новый каталог: C: \ Users \ satelliteImages \ SatImage000863.gif
Тогда я решаю, если загрузить следующие файлы мне нужно или нет. Если первый текущий файл не то же самое затем продолжить и загрузить остальные файлы, но если это тождественно не загружайте остальные:
if (file_compare == true)
{
break;
}
else
{
try
{
client1.DownloadFile(link, filePath);
}
catch (Exception e)
{
DannyGeneral.Logger.Write(e.ToString());
}
}
Первый раз file_compare было ложным и загрузил файл, используя CLIENT1. Весь мой код в цикле, я не показывал его здесь, но он находится в цикле, и он загружает каждые 15 минут новые 9 файлов.
Но проблема в том, что если я запустил программу заново или если прошло 15 минут, она будет загружать те же 9 изображений.
Мне нужно как-то заставить его загрузить, только если первый файл не совпадает с предыдущим.
Проблема в том, что file_compare снова является ложным. Сначала он загрузил 9 файлов, и я снова запустил программу, но все же это ложь. И изображения те же, что и я. Файл satellite.jpg и SatImage000863.gif одинаковы, поэтому он должен делать перерыв; Но это не дает ложных данных.
извините, если я заявляю очевидное, но как могли бы «satellite.jpg» и «SatImage000863.gif» быть одинаковыми? они не имеют одинакового формата кодирования. – Claies
Claies о формате, который вы правы. Но в логике, если я скачал файл satellite.jpg через 15 минут снова и снова, и ничего не изменилось, саунт.jpg выглядит так же, как и последний файл на моем жестком диске SatImage000863.gif, тогда они одинаковы. И я поменяю формат, в котором это была моя ошибка, по какой-то причине я сохранил спутник как jpg, а не gif. –
Claies вообще я не хочу скачивать каждый раз в те же файлы только новые. Это ссылка, например, как выглядит изображение спутника: http://www.sat24.com/image2.ashx?region=is&time=201502150945&ir=True –