Модераторы: 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   Вверх
Neymexa
Дата 25.3.2009, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ну как я и говорил у меня ошибка - не знаю как ее обойти

string i;
i=textbox1.text;
DirectoryInfo di = new DirectoryInfo(i);  
пишет путь имеет недопустимую форму.
PM MAIL   Вверх
Rififi
Дата 25.3.2009, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Neymexa
путь имеет недопустимую форму
привести путь к допустимой форме
гооглить "win32 naming file path"
PM MAIL   Вверх
Neymexa
  Дата 27.3.2009, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



хм что то не получается
PM MAIL   Вверх
ZmeyNet
  Дата 27.3.2009, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 25.1.2008
Где: Belarus, Minsk

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



что то у меня закралось подозрение что автор изобретает OpenFileDialog
PM MAIL ICQ Skype   Вверх
SKrivosein
Дата 27.3.2009, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Neymexa ты откуда путь директории брать собираешся?
Если у тебя человек руками вводит то помоему лучше в форму бросить с Toolbox диалог Folder Browser Dialog и выбирать с него.
Если хочеш всёж с техт-бокса то путь должен быть полный и сконтролируй его, чет типа
Код

 private void buttonSelectDirectory_Click(object sender, EventArgs e)
        {
            if (textBoxManualSelect.TextLength == 0)//с диалога
            {
                folderBrowserDialog.ShowDialog();
                directory = folderBrowserDialog.SelectedPath; //выбираем с диалога
            }
            else   //всёж руками
            {
                directory = textBoxManualSelect.Text;
                DirectoryInfo di = new DirectoryInfo(directory);
                if (di.Exists) //проверяем наличее директ.
                {
                    ....; //двигаемся дальше
                }
                else
               {
                     ...; //к сожалению не двигаемся
               }
            }
        }

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


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


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

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


Шустрый
*


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

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



SKrivosein чтоб я без тебя делал бы? наверно вот что -  smile  smile  smile  smile спасибо!скинь асю свою мне в личку 
ой что то не получается вызвать buttonSelectDirectory_Click.как это сделать?
ну с простой кнопкой то просто на ней кликаешь и все.есть также у этого компонента свойство shownewfolderbutton у меня оно true
 что на счет поля ввода да я и хотел чтобы мне подсказали какой компонент использовать.я нашел directoryentry and directorysearcher думал подойдут но сейчас кажется нет

Это сообщение отредактировал(а) Neymexa - 27.3.2009, 22:33
PM MAIL   Вверх
VirusUZ
  Дата 30.6.2010, 07:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 9.4.2010
Где: Узбекистан, Навои й обл.

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



/////////// in C#

//get directory
foreach (string d in Directory.GetDirectories("C:\\a", "*b*"))
            {
                MessageBox.Show(d);
            }
// get file
foreach (string d in Directory.GetFiles("C:\\a", "*.dat"))
            {
                MessageBox.Show(d);
            }


Это сообщение отредактировал(а) VirusUZ - 30.6.2010, 07:58
--------------------
Virus
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

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


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

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


 




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


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

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