![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| GX777 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 29.3.2008 Репутация: нет Всего: нет |
Привет всем!У меня к вам 2 вопроса:
1.Как сравнить файлы по содержимому(для поиска дубликатов файлов).Если есть очень много файлов. 2.Как одним разом сразу вывести список файлов находящихся во всех каталогах(Например вывести список файлов на диске С) Ведь GetFiles() показывает только список файлов в одном каталоге.А если в этом каталоге кроме файлов есть еще каталоги с вложенными файлами? P.S.Извините за сумбурное изложение вопроса)) |
|||
|
||||
| oleeg |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 27.11.2006 Репутация: нет Всего: нет |
Могу помочь по второму вопросу, ибо писал для себя программу, которая выводит список файлов в выбранном каталоге
если надо, могу выложить полный код, там просто много наворотов, которые вряд ли тебе нужны |
|||
|
||||
| GX777 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 29.3.2008 Репутация: нет Всего: нет |
Спасибо,и этого хватит.
|
|||
|
||||
| GX777 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 29.3.2008 Репутация: нет Всего: нет |
oleeg,не могу понять каким образом у тебя это работает. В учебниках написано что параметром этого конструктора должна быть папка.Не пашет эта строчка у меня |
|||
|
||||
| informatik |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 4.11.2007 Репутация: нет Всего: 6 |
Для этого можно использовать хэш код файлов. Хэш - это контрольная сумма, уникальная для каждого файла или блока данных. С помощью хэша можно проверить изменялся ли файл с момента создания. В NET есть несколько хэшалгоритмов без ключа. Для больших файлов лучше использоывать алгоритм с большим размером хэша(512). Таковым является алгоритм SHA512. Для малких можно MD5(128 бит) - это будет побыстрее... Пример вычисления хэша файла:
Это сообщение отредактировал(а) informatik - 19.7.2008, 19:55 --------------------
namespace informatik |
||||
|
|||||
| nikitao |
|
|||
![]() Кот-программист ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1206 Регистрация: 30.8.2005 Где: Спб Репутация: 4 Всего: 26 |
GX777, а это чем вам не нравится ?
зы GX777, Вопросы в топике абсолютно разные. По хорошему - это должно быть 2 топика ибо 1 топик = 1 вопрос Это сообщение отредактировал(а) nikitao - 19.7.2008, 23:21 -------------------- Жизнь - печальная штука. |
|||
|
||||
| oleeg |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 27.11.2006 Репутация: нет Всего: нет |
Специально переписал для тебя программу
GX777 На счет твоего вопроса. Параметром должна быть не папка, а ее АДРЕС, например "D:\\". И тогда должно все работать |
|||
|
||||
| nikitao |
|
|||
![]() Кот-программист ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1206 Регистрация: 30.8.2005 Где: Спб Репутация: 4 Всего: 26 |
oleeg, ваш код показывает только файлы , которые вложены в папки диска D:\. При этом он не показывает файлы , которые лежат на диске D: и файлы , которые лежат с более большей степенью вложенность( к примеуру D:\папка1\папка2\файл_скрылся.bag)
-------------------- Жизнь - печальная штука. |
|||
|
||||
| informatik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 4.11.2007 Репутация: нет Всего: 6 |
Может вот такой вариант: Класс DirectoryInfo имеет метод - GetFileSystemInfos() возвращающий массиы всех файлов и папок в директории. Каждый элемент массива имеет тип FileSystemInfo который является общим для классов FileInfo и DirectoryInfo. Отсюда можно написать две процедуры в одной из которых проверять на тип и выполнять ее рекурсивно, а в другой выполянть действия с фалами. --------------------
namespace informatik |
|||
|
||||
| oleeg |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 27.11.2006 Репутация: нет Всего: нет |
Странно, не задумывался об этом, да и не нужно было это. ДАлно, надо исправить будет |
|||
|
||||
| GX777 |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 29.3.2008 Репутация: нет Всего: нет |
nikitao,это именно то что мне надо.Но... Когда ставишь вот так:
то вылазит ошибка,что типа "Отказано в доступе "E:\\System Volume Information"".Т.е. у этой папки выставлен атрибут - скрытый.И на этом прога выходит так ничего толком и не сделав.Как мне программно пропустить такие скрытые файлы и папки |
||||
|
|||||
| informatik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 4.11.2007 Репутация: нет Всего: 6 |
Хмммм.... вы меня игнорируете?....
--------------------
namespace informatik |
|||
|
||||
| nikitao |
|
|||
![]() Кот-программист ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1206 Регистрация: 30.8.2005 Где: Спб Репутация: 4 Всего: 26 |
следующий! Да.....насчет прав доступа я не подумал..... Тогда наверно проще всего делать как сказал informatik. Добавлено через 2 минуты и 41 секунду
Да не. К ней по дэфолту разрешено обращаться только пользователю System. Если добавить админов к достопу , то все начинает работать... -------------------- Жизнь - печальная штука. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |