Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Поиск файла


Автор: yarus88 10.3.2009, 15:23
Здравствуйте! Как сделать поиск по всем каталогам в компе? мне нужно открывать каждый файл смотреть является ли он мне нужным экзешником...если нет то пропускать его...если да то вывести полный путь к нему...

Автор: antslava 10.3.2009, 15:39
что ты понимаешь под открывать каждый ехе?  smile  smile 

Автор: yarus88 10.3.2009, 15:56
мне нужно проверить является ли он PE файлом или нет...если да то сравнить кусок его сегмента кода с куском сегмента кода данного мне файла....

Автор: CompWorm 10.3.2009, 16:09
я так понял вопроса два и уровень их сложности... как небо и земля)))

искать можно примерно так:
Код

            //Задаем стартовую директорию
            folderBrowserDialog1.ShowDialog();
            DirectoryInfo di = new DirectoryInfo(@folderBrowserDialog1.SelectedPath);
            ScanDirectories(di);


а вот ScanDirectories
Код

        public static void ScanDirectories(DirectoryInfo p_DirInfo)
        {
            FileInfo[] fi = p_DirInfo.GetFiles();//Сюда попадут все файлы этой папки
            for (int i = 0; i < fi.Length; i++)
            {
                //fi[i].Extension - рассширение файла
                //fi[i].FullName  - полное имя файла

                //сюда суем процедуру для выявления нужного экзе
            }
            /*
            DirectoryInfo[] di = p_DirInfo.GetDirectories();//Сюда попадут все поддиректории этой директории
            for (int i = 0; i < di.Length; i++)
            {
                ScanDirectories(di[i]);
            }
            */

        }


про второй вопрос, я не уверен что правильно понимаю суть вопроса...

Автор: yarus88 10.3.2009, 16:28
ну вощем суть задания...нужно просматривать все файлы....открывать...смотреть есть ли у него поле MZ(это показатель что файл является PE файлом) потом там еще пару проверок но это не суть щас....и если сегменты по одному и тому же адресу сходятся то вывести полный путь к файлу... но щас мне нужно тока как пробегаться от файла к файлу...

Автор: antslava 10.3.2009, 16:40
Ну файлы с необходимой маской можно получить с помощью: 
Код

DirectoryInfo dirInfo = new DirectoryInfo(path);
FileInfo[] fileInfo = di.GetFiles(mask, SearchOption.AllDirectories);         


Добавлено через 1 минуту и 59 секунд
Ну файлы с необходимой маской можно получить с помощью: 
Код

DirectoryInfo dirInfo = new DirectoryInfo(path);
FileInfo[] fileInfo = di.GetFiles(mask, SearchOption.AllDirectories);         

В массиве fileInfo будут хранится все файлы с необходимой маской.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)