![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
Miller_time |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 641 Регистрация: 8.9.2006 Где: Нижний Новгород Репутация: нет Всего: 1 |
Как просканировать папку на файлы ? Мне надо получить кол-во файлов и имена ? Такое реально сделать ?
|
|||
|
||||
nankko |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 8.2.2007 Репутация: нет Всего: нет |
да,и очень просто)))
Итого,в массиве все имена файлов в заланной дериктории, и размер самого массива т.е кол-во файлов,потом с массивом можешь делать что хочешь)))) Это сообщение отредактировал(а) nankko - 9.2.2007, 14:41 |
||||
|
|||||
Tror |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 29.4.2005 Где: Кишинёв Репутация: 2 Всего: 4 |
а реально немного поиском воспользоваться?
--------------------
Не говори всегда что знаешь, но знай всегда что говоришь. /Клавдий/============================================Кто может -- тот делает. Кто не может... тот получает сертификат MCSE ;) |
|||
|
||||
Miller_time |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 641 Регистрация: 8.9.2006 Где: Нижний Новгород Репутация: нет Всего: 1 |
А как получить конкретный файл из списка ? Тоесть выдернуть из массива ? его путь. и название
|
|||
|
||||
Tror |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 29.4.2005 Где: Кишинёв Репутация: 2 Всего: 4 |
а вот мне интересно ты на самом деле не мог найти или издеваешься?
DirectoryInfo.GetFiles() возвращает массив FileInfo, в котором есть вся необходимая тебе инфа --------------------
Не говори всегда что знаешь, но знай всегда что говоришь. /Клавдий/============================================Кто может -- тот делает. Кто не может... тот получает сертификат MCSE ;) |
|||
|
||||
Stepan_Lameroff |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 16.12.2006 Репутация: 9 Всего: 14 |
||||
|
||||
Kvazilol |
|
||||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 7.12.2006 Репутация: нет Всего: нет |
окей, пишу я, скажем
Drive.RootDirectory.GetFiles("*.zip", System.IO.SearchOption.AllDirectories) по идее вернутся все зип файлы в моем случае на диске C не тут то было!!! выскакивается исключение
в доступе к какойто там подпапке отказано. как решить проблему!? попробывал так -
выставил какоето право доступа Audit. но всеравно исключение. при любомчлене перечисления AccessControlSections возникает исключение... как быть!? мне нужно получить все "*.zip" файлы на диске. эти файлы будут использоваться только на чтение. если на диске папка которую нельзя открывать то пусть прогамма ее не открывает!! как это сделать то!?.. ![]() Это сообщение отредактировал(а) Kvazilol - 18.4.2007, 22:20 |
||||
|
|||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Не все директории доступны на получение списка файлов, и обрабатывать это нужно с пом. try..catch.
Пример - System Volume Information. Другой пример - сбойная запись в таблице FAT. Ещё пример - директория, к которой текущему пользователю запретил доступ системный администратор. -------------------- ![]() |
|||
|
||||
Kvazilol |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 7.12.2006 Репутация: нет Всего: нет |
ну и не хочу я лезть куда нельзя. я хочу получить то что мне можно получать. как это сделать !? неужели нет таких универсальных решений?
|
|||
|
||||
Naum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 743 Регистрация: 7.9.2005 Где: Саратов, ул. Поса дского, 298 Репутация: 8 Всего: 15 |
Последнее время, что-то часто такой вопрос встречается. Никто ничего не хочет делать. Все хотят, чтоб все уже было готово. ![]() Ну ты подумай, откуда разработчикам, которые находятся за несколько км от тебя и скорее всего ничего не знают о твоем существовании, знать к каким папкам у тебя есть доступ, а к каким нет, и вообще какие у тебя там папки? Неужели так трудно добавить парочку try-catch'ев? Тем более в твоем случае всего одни. -------------------- У нас всего два праздника Новый год и ТЯПница. |
|||
|
||||
Kvazilol |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 7.12.2006 Репутация: нет Всего: нет |
да дело не в том что мне не нравится что происходит исключение.
дело в том что исключения происходят по самым незначительным причинам.. если бы можно было както параметризовать то может быть их не было бы (выставить так что я хочу получить те папки к которым можно получить доступ). а так придётся мне делать рекурсивный обход папок... пфе.. и не только мне а всем у кого задача - всеголиш получить все папки или папки в данной папке |
|||
|
||||
Naum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 743 Регистрация: 7.9.2005 Где: Саратов, ул. Поса дского, 298 Репутация: 8 Всего: 15 |
Ну да. Такого к сожалению нет. А ты знаешь другие способы? То есть, допустим у меня есть папки C:\FFolder, C:\FFolder\FFFolder, C:\SFolder. Ты хочешь, чтоб вывело просто FFolder, FFFolder, SFolder? DirectoryInfo.GetDirectories() именно для этого и служит. И когда ты, например, захочешь получить список всех папок в корне системного диска, этот метод даст тебе список всех папок в корне системного диска, включая и те, к которым доступ запрещен. Например, System Volume Information. Однако, когда ты захочешь получить список папок в папке System Volume Information по вполне понятным причинам вылетит ошибка. -------------------- У нас всего два праздника Новый год и ТЯПница. |
|||
|
||||
Kvazilol |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 7.12.2006 Репутация: нет Всего: нет |
вот сваял такой класс
и получаю файлы так foreach (System.IO.FileInfo File in new FileSearcher(extensions, Drive.RootDirectory).FindFiles()) { пока он прочесал весь диск С, прошло минуты две (задал расширения для поиска exe и pdf) ![]() видимо придется этот занос файлов в список делать в одном потоке а юзать сами файлы в другом, параллельном ему потоке.. тоесть там надо делать событие ФайлДобавлен и обрабатывать его в другом потоке... но это уже другая тема Это сообщение отредактировал(а) Kvazilol - 19.4.2007, 21:59 |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Kvazilol, так ведь любая прога (например Total Commander или Far) практически столько же времени потратит на рекурсивный обход раздела, к примеру если поиск по маске выполнить или дерево папок построить.
-------------------- ![]() |
|||
|
||||
Kuznecoff |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 4.7.2007 Репутация: нет Всего: нет |
Чтоб не создавать тему новую спрошу тут, т.к. вопрос вообщем то схожий:
вот я получаю полный список файлов и директорий которые удовлетворяю маске введеной в текстовое поле
Если я ввожу какойто один тип файлов (к примеру "*.txt"), то поиск проходит нормально, но что нужно сделать если мне надо найти например такие файлы - "*.cs, *.cpp"??? На такую маску функция к сожалению не реагирует. Подскажите как решить проблему!!! |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |