Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.08.2016, 15:17   #1
tararyk1n
Новичок
Джуниор
 
Регистрация: 24.08.2016
Сообщений: 3
По умолчанию Поиск исполняемых файлов

Здравствуйте, помогите написать прикладную программу, осуществляющую выявление по содержимому в заданном каталоге на диске ПК всех исполняемых файлов и вывод информации о каждом обнаруженном файле в виде списка(имя, размер, дата и время создания) Имя каталога в котором осуществляется поиск файлов , передается через параметры командной строки. итерфейс консольный, запускается из командной строки ОС Windows7
tararyk1n вне форума Ответить с цитированием
Старый 24.08.2016, 15:28   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

подозреваю, что под исполняемыми файлами подразумеваются файлы формата EXE (см. DOS MZ executable ), т.к. другое намного сложнее детектировать по содержимому!

поиск файлов - FindFirst + FindNext
минимальная проверка на содержимое - первые два байта MZ

вывести список в консоли через cout

попробуйте что-то написать, используя полученную информацию.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.08.2016, 16:29   #3
tararyk1n
Новичок
Джуниор
 
Регистрация: 24.08.2016
Сообщений: 3
По умолчанию

Код:
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
	WIN32_FIND_DATA fd;
	HANDLE hFind = FindFirstFile(L"c:\\*", &fd);
	do
	{
		if (hFind == INVALID_HANDLE_VALUE)
			break; 
		wcout << fd.cFileName << "\n";
		cout << "\n";
	} while (FindNextFile(hFind, &fd));
	FindClose(hFind);
	system("pause");

	return 0;
}
вот в принципе вывод всех файлов, как мне дальше действовать?
tararyk1n вне форума Ответить с цитированием
Старый 24.08.2016, 17:18   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

очень хорошо!

А дальше нужно написать функцию, которая откроет файл по имени и, прочитав первые два байта, сравнит их с 'MZ' - если совпадает, то, в первом приближении,
можно считать этот файл исполняемым и выводить о нём сведения в консоль.

ну и задачу можно считать решённой (в первом приближении).

p.s. не забудьте вывести размер (см. nFileSizeLow nFileSizeHigh) и дату/время (это ftCreationTime и/или ftLastWriteTime)

p.p.s. "c:\\*" - а что, у Вас много EXE файлов в корне диска С:\ ? вообще-то, это не очень нормально.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.08.2016, 17:29   #5
tararyk1n
Новичок
Джуниор
 
Регистрация: 24.08.2016
Сообщений: 3
По умолчанию

EXE файлов в корне С нету. Вопрос как мне осуществить чтобы каталог я задавал через консоль и просмотр и поиск осуществлялся и во вложенных директориях
tararyk1n вне форума Ответить с цитированием
Старый 24.08.2016, 17:33   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
чтобы каталог я задавал через консоль
либо запрашивать каталог при старте программы, либо брать параметры командной строки.
я бы сделал через запрос.

Цитата:
и просмотр и поиск осуществлялся и во вложенных директориях
делать процедуру поиска отдельной процедурой.
и использовать рекурсию (вызов самой себя) если найденный элемент является папкой (dwFileAttributes имеет установленный аттрибут FILE_ATTRIBUTE_DIRECTORY)

посмотрите пример тут - Рекурсивный поиск файлов с использованием WinAPI

Последний раз редактировалось Serge_Bliznykov; 24.08.2016 в 17:36.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компиляция исполняемых файлов capta1n Visual C++ 1 10.05.2011 00:33
SUSE . поиск исполняемых файлов zhenya.ya Qt и кроссплатформенное программирование С/С++ 0 09.04.2011 22:43
Упаковщики исполняемых файлов Blade Софт 9 06.09.2010 00:00
Запуск исполняемых файлов из программы Dryg2009 Общие вопросы Delphi 7 15.04.2009 07:50
сжатие исполняемых файлов SuperVisor Софт 8 26.03.2007 21:40