Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поисковик, Поиск файлов 
:(
    Опции темы
Neymexa
  Дата 17.3.2009, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 11.12.2008

Репутация: нет
Всего: нет



Есть у кого исходники поисковика файлов.

Пример указываем директорию и находим в ней файлы определенной директории ну например .xml
PM MAIL   Вверх
SKrivosein
Дата 18.3.2009, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Идущий в даль
**


Профиль
Группа: Участник
Сообщений: 271
Регистрация: 9.6.2007
Где: Praha - Прага

Репутация: 4
Всего: 8



Если тебя правильно понял то примитивно:
Код

using System;
using System.Collections.Generic;
using System.IO;
........

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            DirectoryInfo di = new DirectoryInfo(@"C:\Windows");  
            FileInfo[] fi_array = di.GetFiles(); 

            foreach (FileInfo fi in fi_array)
            {
                if (fi.Extension == ".dat") 
                {
                    Console.WriteLine("{0}", fi.FullName); 
                }
            }
            Console.ReadLine();
        }
    }
}

Чтобы идти глубже используй ещё GetDirectories() , вернёт все поддиректории.
Ну ещё покапайся System.IO. Надеюсь помог.



--------------------
Оптимист - это плохо информированный человек.
user posted image

PM MAIL   Вверх
Rififi
Дата 18.3.2009, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: нет
Всего: 36



Neymexa
Есть у кого исходники поисковика файлов.
у Microsoft.
Качаешь NetMassDownloader, качаешь исходники .Net Framework, ищешь реализацию функций DirectoryInfo.GetFiles(...)
PM MAIL   Вверх
-Mikle-
Дата 18.3.2009, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 4
Всего: 59



Цитата(SKrivosein @  18.3.2009,  04:21 Найти цитируемый пост)
        static void Main(string[] args)
        {
            DirectoryInfo di = new DirectoryInfo(@"C:\Windows");  
            FileInfo[] fi_array = di.GetFiles(); 


Цитата(SKrivosein @  18.3.2009,  04:21 Найти цитируемый пост)
Чтобы идти глубже используй ещё GetDirectories()

Лучше тогда так:
Код

        static void Main(string[] args)
        {
            DirectoryInfo di = new DirectoryInfo(@"C:\Windows");  
            FileInfo[] fi_array = di.GetFiles("*.xml", SearchOption.AllDirectories);



--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
Neymexa
Дата 19.3.2009, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 11.12.2008

Репутация: нет
Всего: нет



благодарю за код но вот на счет этого кода

static void Main(string[] args)
        {
            DirectoryInfo di = new DirectoryInfo(@"C:\Windows");  
            FileInfo[] fi_array = di.GetFiles(); //вот эта строка-объект fi_array а вот FileInfo[] откуда взяли?
PM MAIL   Вверх
Partizan
Дата 19.3.2009, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 8
Всего: 67



Neymexa, FileInfo[] - это массив объектов типа FileInfo


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Neymexa
Дата 19.3.2009, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 11.12.2008

Репутация: нет
Всего: нет



Цитата(Partizan @ 19.3.2009,  13:03)
Neymexa, FileInfo[] - это массив объектов типа FileInfo

библиотеку 
using System.Collections.Generic;
из-за этого подключаем?
А на счет FileInfo[] спасибо

PM MAIL   Вверх
Partizan
Дата 19.3.2009, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 8
Всего: 67



Neymexa, да вроде бы как нет smile


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Neymexa
Дата 19.3.2009, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 11.12.2008

Репутация: нет
Всего: нет



Цитата(SKrivosein @ 18.3.2009,  01:21)
Если тебя правильно понял то примитивно:
Код

using System;
using System.Collections.Generic;
using System.IO;
........

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            DirectoryInfo di = new DirectoryInfo(@"C:\Windows");  
            FileInfo[] fi_array = di.GetFiles(); 

            foreach (FileInfo fi in fi_array)
            {
                if (fi.Extension == ".dat") 
                {
                    Console.WriteLine("{0}", fi.FullName); 
                }
            }
            Console.ReadLine();
        }
    }
}

Чтобы идти глубже используй ещё GetDirectories() , вернёт все поддиректории.
Ну ещё покапайся System.IO. Надеюсь помог.

парни я хочу сделать не консоль а через форму.
я попытаюсь - если что поможете?

думаю трудность будет в выводе файлов.
необходимо наверно делать вывод результатов через массив?

Добавлено через 3 минуты и 54 секунды
еще может кто знает хороший русскоязычный ресурс по C#-многие советуют msdn но я плохо понимаю английский а rsdn фигня - искал что нужно так и не нашел
PM MAIL   Вверх
Partizan
Дата 19.3.2009, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 8
Всего: 67



Neymexa, msdn переведён отчасти на русский язык, а rsdn - один из лучших русскоязычных ресурсов по программированию.


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
SKrivosein
Дата 19.3.2009, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Идущий в даль
**


Профиль
Группа: Участник
Сообщений: 271
Регистрация: 9.6.2007
Где: Praha - Прага

Репутация: 4
Всего: 8



Цитата

парни я хочу сделать не консоль а через форму.
я попытаюсь - если что поможете?

Neymexa  ты спросил, мы обьяснили как сделать такой моторчик, консоль - не консоль.
Цитата

думаю трудность будет в выводе файлов.

зависит на том что ты имееш в виду, продумай какой должен быть результат, выписать их, распечатать и т.п.



--------------------
Оптимист - это плохо информированный человек.
user posted image

PM MAIL   Вверх
Neymexa
Дата 19.3.2009, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 11.12.2008

Репутация: нет
Всего: нет



Цитата(SKrivosein @ 19.3.2009,  18:55)
Цитата

парни я хочу сделать не консоль а через форму.
я попытаюсь - если что поможете?

Neymexa  ты спросил, мы обьяснили как сделать такой моторчик, консоль - не консоль.
Цитата

думаю трудность будет в выводе файлов.

зависит на том что ты имееш в виду, продумай какой должен быть результат, выписать их, распечатать и т.п.

форма примерно такая поле ввода кнопка и  listbox там будет выводится список найденных файлов.ну вот пока все
можно докопаться и сделать маленькое меню.но это потом
PM MAIL   Вверх
SKrivosein
Дата 22.3.2009, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Идущий в даль
**


Профиль
Группа: Участник
Сообщений: 271
Регистрация: 9.6.2007
Где: Praha - Прага

Репутация: 4
Всего: 8



Копался в этом не много дольше и нашёл (методом тыка) что далеко не все файлы и директории можно так "иследовать".
Допустим при попытке стелать это
Код

           DirectoryInfo dirRoot = new DirectoryInfo("C:\\");
           DirectoryInfo[] dirInfo = dirRoot.GetDirectories();

            foreach (DirectoryInfo di in dirInfo)
            {
                    DirectoryInfo[] newGenDirInfo = di.GetDirectories(); //Exception !!!
            }

получим исключение: "В доступе на директории C:\ System Volume Information отказано."
Тоже самое делают некоторые файлы, антивираки и т.п.
Без блока try - catch можно поймать трудно уловимую ошибку, которую сам Windows почему то игнорирует.
По крайней мере мне не появлялась стандартная "unhandled exception".
----------------------------------------- 
А ещё смайлика нарисую ->  smile 



Это сообщение отредактировал(а) SKrivosein - 22.3.2009, 20:24


--------------------
Оптимист - это плохо информированный человек.
user posted image

PM MAIL   Вверх
Neymexa
Дата 23.3.2009, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 11.12.2008

Репутация: нет
Всего: нет



наверно эти файлы с необычным доступом - типо системный или скрытый .
благодарю езе раз  smile 

Код

 static void Main(string[] args)
        {
            DirectoryInfo di = new DirectoryInfo(@"C:\Windows");  
            FileInfo[] fi_array = di.GetFiles(); 
            foreach (FileInfo fi in fi_array)
            {
                if (fi.Extension == ".dat") 
                {
                    Console.WriteLine("{0}", fi.FullName); 
                }
            }
            Console.ReadLine();
        }

хочу переделать код из консоли в форму .
вопрос ?- при передаче данных в DirectoryInfo вместо @"C:\Windows" я буду вставлять из texbox1.text при инициализации переменной не будет ли ошибки 
string i;
i=textbox1.text;
DirectoryInfo di = new DirectoryInfo(i);  // ошибки не будет?


Это сообщение отредактировал(а) Neymexa - 23.3.2009, 22:18
PM MAIL   Вверх
Partizan
Дата 23.3.2009, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 8
Всего: 67



Neymexa, ошибки времени компиляции точно не будет smile


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1255 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.