Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2016, 18:43   #1
Obey177
Форумчанин
 
Регистрация: 29.08.2010
Сообщений: 159
По умолчанию Сравнить папки на содержимое

Подскажите пожалуйста какими библиотеками или пространствами имен воспользоваться для сравнения.
Допустим у меня есть две папки примерно одинакового содержимого, но в одной отсутствует один файл который есть во второй, а в другой тоже нет файла который есть в первой...
Говорят бинарно можно...
Подскажите в сторону чего капать, а там думаю сам разберусь...Заранее спасибо.
Obey177 вне форума Ответить с цитированием
Старый 04.04.2016, 18:48   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Что бинарно? Вам же не содержимое файлов сравнивать надо, а только их пути/имена?

Directory.GetFiles
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 04.04.2016, 18:52   #3
Obey177
Форумчанин
 
Регистрация: 29.08.2010
Сообщений: 159
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Что бинарно? Вам же не содержимое файлов сравнивать надо, а только их пути/имена?

Directory.GetFiles
Алекс, дело в том что и содержимое тоже нужно
Obey177 вне форума Ответить с цитированием
Старый 04.04.2016, 18:55   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
                var oldFiles = Directory.EnumerateFiles("fld1").Select(Path.GetFileName);
                var newFiles = Directory.EnumerateFiles("fld").Select(Path.GetFileName);
                newFiles = newFiles.Except(oldFiles);
я пользовался таким, но у меня как видно только уровень файлов был.
в вашем случае надо будет Select исправить.
после данной кода в newFiles будут все файлы которых нет в папке fld1

содержимое уже немного сложнее.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 04.04.2016, 19:02   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Тогда зависит от того как сравнивать нужно. Если просто проверить совпадают ли, то можно просто читать байты из обоих файлов и сравнивать. А если вывести что и где не совпадает, то сложнее.

А цель-то какая? Есть же куча готовых программ. WinMerge, VBinDiff, ...
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 04.04.2016, 19:09   #6
Obey177
Форумчанин
 
Регистрация: 29.08.2010
Сообщений: 159
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Тогда зависит от того как сравнивать нужно. Если просто проверить совпадают ли, то можно просто читать байты из обоих файлов и сравнивать. А если вывести что и где не совпадает, то сложнее.

А цель-то какая? Есть же куча готовых программ. WinMerge, VBinDiff, ...
Вывести где не совпадает, цель для работы, сделать за меня не прошу просто подскажите что смотреть...
Obey177 вне форума Ответить с цитированием
Старый 04.04.2016, 19:11   #7
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Для какой работы? Зачем делать когда уже сделано?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 04.04.2016, 19:14   #8
Obey177
Форумчанин
 
Регистрация: 29.08.2010
Сообщений: 159
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Для какой работы? Зачем делать когда уже сделано?
Ну как бы понимаете чужое нельзя в этой фирме(
Obey177 вне форума Ответить с цитированием
Старый 04.04.2016, 19:21   #9
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

В каком смысле чужое? ОС и .NET вы ж тоже не писали сами.

И вы так и не описали нормально что и с какой целью сравнивать надо, бывает много вариантов сравнения.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 04.04.2016, 19:27   #10
Obey177
Форумчанин
 
Регистрация: 29.08.2010
Сообщений: 159
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
В каком смысле чужое? ОС и .NET вы ж тоже не писали сами.

И вы так и не описали нормально что и с какой целью сравнивать надо, бывает много вариантов сравнения.
Цель сравнения: Есть эталонная папка с содержимым, с ней сравниваем другую папку,если в папке есть файл с таким же названием но его изменили(пересохранили и т.д.) его тоже выписываем, или же файл отсутствует тоже выписываем...позже нужно будет делать синхронизацию этих папок, но это другая история..
Obey177 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Содержимое папки!!!!!!!!!!!!!!!! Andersen1313 Общие вопросы C/C++ 0 25.03.2012 10:58
Сравнить содержимое двух Memo. santaIsAbsent Общие вопросы Delphi 1 17.08.2010 11:33
как же все таки сравнить содержимое двух строк? LOST94 Общие вопросы C/C++ 7 23.03.2010 14:52
скопировать все содержимое папки в другую DannyKing Помощь студентам 6 27.03.2009 09:50
Как получить содержимое папки ? - fenix - Помощь студентам 4 19.04.2008 06:25