Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Visual C++/MFC/WTL > Создания интерфейса для поиска файлов |
Автор: julianusti 28.8.2007, 20:55 |
Создания интерфейса для поиска файлов на локальной машине за заданым именем, форматом файла... vector<string> Find(string fileName ) как реализовать ?...помогите пожалуйста. |
Автор: SenkraD 29.8.2007, 07:43 | ||
julianusti, а что поиском пользоватся не умеем - тема частая (переодически). Вот тебе пример с MSDN (WinAPI):
А если конкретно по твоей задаче, то: 1. Определи количество дисков на локальной машине и их корневые папки (_getdrive, _chdrive, _getdcwd) 2. Перепиши функцию так, чтобы она работала рекурсивно. (Лучше не возвращай vector, а передавай его как входной параметр, по ссылке) 3. Вызови модифицированную функу для все дисков (Будь внимателен с "флопом" и CD/DVD - нужно проверять есть ли в них носители, иначе будет горе) P.S. В MFC есть обёртка для поиска файлов - CFileFind P.S.P.S. Появятся новые вопросы - спрашивай, а первая строчка - это совет, на будущее |
Автор: julianusti 29.8.2007, 07:56 |
Спасибо большое за подсказку....буду работать. Делав том что я в мсдн был и этот пример уже видел и даже запускать пробывал ![]() Еще раз спасибо. vector<string> Find( string fileName ) Performs search for specified in constructor drive for files named fileName. Returns vector of found files. Each vector element – file name with fully specified path. Note: method blocks until search is complete. Вот конкретно условия. |
Автор: SenkraD 29.8.2007, 10:17 | ||
julianusti, держи (было время - поигрался), но тебе это лучше распаралелить уж очень лолго по всей машине искать будет zkv, согласен в том, что нужно по ссылке передавать
Remarks: - Даная реализация не может искать по маске!!! - Местами не лучшая реализация (мне так показалось) - можно было б реализовать на WinAPI и не использовать CString - получить количество дисков тоже можно было б через API, а не через CRT - Нет проверки на наличие носителя в каком-либо дисководе - Не помешало б распарелить (один диск - один поток) P.S. VC++ 2003 - Unicode отключён - работаем в ANSI |
Автор: julianusti 29.8.2007, 12:20 |
Спасибо большое, буду розбиратся... впринципе я бы использывал бы мсдн"овский пример, но таке задание...а я таким вообще не занимался...я пока что чайник, но стремительно учусь...еще раз благодарю за помощь! |
Автор: NiJazz 30.8.2007, 09:59 |
Я чего-то не понимаю, или всё-таки здесь лучше использовать list<>, а не vector<>? Добавлено через 13 минут и 54 секунды Ну или хотя бы сделать грамотный vector<>::reserve. |
Автор: julianusti 19.9.2007, 08:58 |
SenkraD, Привет, еще раз спасибо за пример....я вот нидавно содился...и что то мне не вышло этот проект запустить....ты бы не мог мне на мыло его отправит... ? Зарание спасибо....хотелось бы розобратся с этим...і мой е-майл: [email protected] |
Автор: zkv 19.9.2007, 09:56 |
лучше выкладывайте на форуме, возможно не только у тебя такая проблема |
Автор: SenkraD 19.9.2007, 11:57 |
julianusti, zkv, прицепил проект, но как написано вверху мной и NiJazz его ещё править нуно и нуно ))) |
Автор: julianusti 20.9.2007, 08:34 |
Да над проектом нужно еще поработать...но всеравно лучше что то чем ничего. SenkraD а ты бы не мог детальную бизнес логику описать проекта. Может еще какие-то полезные линки подкинишь ? спасибо ![]() |