|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
24.11.2009, 19:40 | #1 |
Пользователь
Регистрация: 16.09.2009
Сообщений: 10
|
Программа для поиска повторяющихся текстовых файлов
Всем привет!У меня возникла такая проблема. Мне нужно написать программу в Visual studio 2008, которая выполняет поиск дублирующихся файлов в каталоге или на логическом диске. программа должна предоставлять следующие возможности:
· выполнение поиска файлов, которые дублируются, в заданном пользователем адресном пространстве (логическом диске или каталоге); · сообщение пользователя о найденных дубликатах; возможность навигации между ними; · сжатие файлов-дубликатов за алгоритмом GZIP. Общие требования интерфейса программы (обязательные элементы): · поле введения адресного пространства, в котором будет выполняться поиск дубликатов; · форма с перечнем найденных файлов, которые дублируются, с возможностью их открытия прямо из дополнения (например, двойным нажатием левой кнопки мыши); · если несколько текстовых файлов имеют дубликаты, то они должны каким-то образом группироваться; например, на диске присутствуют два одинаковых файла - С:\doc\text1.txt но C:\temp\my\text11.txt, а также на этом диске есть еще три файла, которые дублируются, - С:\doc\text2.txt, C:\temp\text.txt но C:\temp\my\text2.txt; тогда пользователю должны представиться две группы файлов, которые дублируются, - text1.txt и text2.txt (названия групп могут быть любые); причем пользователь должен иметь возможность самому избрать из группы файл-оригинал и файл(и) -дубликати; · у пользователя должна быть возможность сжатия дубликатов за алгоритмом GZIP (за его желанием). На данном этапе у меня имеется следующее: Есть исходник написанного мной куска программы на С#: вот он http://files.mail.ru/LC6PT7 На данном этапе моя программа по задающемуся пользователем пути отыскивает в каталогах текстовые файлы (*.txt), находит по алгоритму md5 хэш каждого файла сводя их в массив строк и выводя в отдельном текстовом поле формы программы(listbox1). Так вот у меня возникла проблема с тем ,что б потом из полученного масcива из хэшов найти одинаковые строки, свести их в новый массив и вывести в другое строковое поле listbox2. Может кто нибудь подскажет как решить мою проблему?...буду премного благодарен. Дело в том что я застрял даже на том ,что не могу получить элементарный контроль над массивом - пытался вывести первую строку...ничего не получилось -почему то выводило все строки сразу. |
24.11.2009, 19:57 | #2 |
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,189
|
1. Твой мог бы выложить сюда, чтобы народ не качал, а сразу видел.
2. Код:
Используй Код:
Код:
fileHashes.Add(hash2); Это по твоему коду. Но с ним ты далеко не уйдешь ((( Я бы советовал создать Dictionary<string, List<string>>. У тебя ключом будет хэш файла, а значением список файлов с таким хэшем. Потом будет очень легко работать. |
24.11.2009, 20:14 | #3 |
Пользователь
Регистрация: 16.09.2009
Сообщений: 10
|
Спасибо за помощь..то есть я так понял, что то что я написал не к черту не годится(((((
"Я бы советовал создать Dictionary<string, List<string>>. У тебя ключом будет хэш файла, а значением список файлов с таким хэшем. Потом будет очень легко работать." - а можно вот здесь поподробнее...я не совсем улавливаю смысл этого приема(( |
24.11.2009, 20:17 | #4 |
Пользователь
Регистрация: 16.09.2009
Сообщений: 10
|
вот код программы:
Код:
|
24.11.2009, 20:18 | #5 |
Участник клуба Подтвердите свой е-майл
Регистрация: 14.12.2007
Сообщений: 1,434
|
Читаем про коллекции и хэш-таблицы.
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
|
24.11.2009, 20:37 | #6 |
Пользователь
Регистрация: 16.09.2009
Сообщений: 10
|
вот нашел ссылку про коллекции и хеш-таблицы:
http://msdn.microsoft.com/ru-ru/libr...hashtable.aspx Надеюсь я на правильном пути? |
25.11.2009, 11:26 | #7 |
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,189
|
Ну давай, ждем результатов. Если что-то не понятно - спрашивай.
|
26.11.2009, 10:32 | #8 |
Пользователь
Регистрация: 16.09.2009
Сообщений: 10
|
Блин у меня появилась реальная проблема....мой алгоритм вычисления хэша не корректно пашет Жаль....Получается он работает если текстовые файлы лежат в том каталоге, что я задаю непосредственно....Если же в заданом мною каталоге лежат еще допустим 2 каталога и в них потом уже - искомые мною файлы -то все программа не работает...не могу никак понять ,что мне нужно подправить что б все заработало Жаль
вот код: Код:
|
26.11.2009, 21:59 | #9 |
Пользователь
Регистрация: 16.09.2009
Сообщений: 10
|
я тут пошарил и с помощью оссобеностей С шарпа решил ту проблему что была до этого:
вот код: Код:
|
28.11.2009, 15:54 | #10 |
Пользователь
Регистрация: 16.09.2009
Сообщений: 10
|
Hollander - по твоему совету создал словарь, что содержит комбинации "ключ-значение"..Ты говорил ,что потом будет очень все легко...Вот я не могу понять в чем легко?....Мне нужно получается выбрать с полученого словаря одинаковые имена файлов а как это сделать не могу понять
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
макрос для склеивание двух текстовых файлов | zenner | Microsoft Office Word | 1 | 09.10.2009 14:16 |
Программа для скрытия информации с графических и текстовых файлах (Delphi\C++) | Ferrat | Помощь студентам | 12 | 04.05.2009 04:25 |
Выбор компонента для работы с содержимым текстовых файлов[Delphi] | sergey31 | Помощь студентам | 2 | 28.08.2008 16:53 |