Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Ferk
3 / 3 / 1
Регистрация: 28.07.2011
Сообщений: 105
#1

програмный поиск файла! - C++

12.09.2011, 11:37. Просмотров 540. Ответов 9
Метки нет (Все метки)

народ помогите пожалуйста)мне надо написать код чтобы можно было найти какой либо файл на жестком.. как это можно осуществить на c++?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.09.2011, 11:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос програмный поиск файла! (C++):

нужно написать програмный код для решения задачи создания бинарного файла - C++
:cry: Написать програмный код для решения задачи создания бинарного файла.

програмный код - C++
Помогите плиз разобраться.Написали прогу, немогу понять как она работает.Конкретно нужны красные участки, если можно поподробнее) 1)...

Реализовать поиск заданного файла в древе каталогов и поиск указанной информации в этом файле - C++
Имеется много папок в каждой папке есть файл proc.txt, как можно по всем этим папкам пройтись и из каждой папки в этом файле достать...

Подредактировать програмный код - C++
У меня такое задание, программа покадрогвого просмотра файлов. Ну тоесть как я понял, посимвольного считывания строк, Которая выдает код...

Напишите пожалуйста програмный код) - C++
Здраствуйте! Помогите пожалуйста бедной)С++ 1)Написать программу используя функциюкоторая определяет:является ли число целым(с с помощью...

Вставка поиска в програмный код - C++
#include <iostream.h> #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> FILE *fl; typedef...

9
Байт
Эксперт C
16324 / 10600 / 1587
Регистрация: 24.12.2010
Сообщений: 20,207
12.09.2011, 12:01 #2
http://lmgtfy.com/?q=findnext
И еще надо будет рекурсию по подпапкам устроить
0
Петррр
12.09.2011, 12:07
  #3
 Комментарий модератора 
Не отсылайте других пользователей в поиск и избегайте ссылок на поисковые системы (Google, Yandex и др.). Самостоятельно найдите ответ на вопрос и разместите его на форуме.
0
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
12.09.2011, 12:50 #4
Ferk, boost::filesystem
0
-=ЮрА=-
Заблокирован
Автор FAQ
12.09.2011, 12:57 #5
Цитата Сообщение от ForEveR Посмотреть сообщение
boost::filesystem
существуют ещё и "дедовские" алгоритмы поиска, которые успешно работают и работали ещё задолго до появления буста

Ferk, вот тебе проект, там не только поиск, а ещё и поиск по маске есть Поиск файла по шаблону
0
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
12.09.2011, 13:01 #6
-=ЮрА=-, Конечно. Но с бустом-то поудобнее будет
0
easybudda
Модератор
Эксперт CЭксперт С++
9680 / 5630 / 954
Регистрация: 25.07.2009
Сообщений: 10,808
12.09.2011, 14:23 #7
Да полно таких тем на форуме!
нужна функция которая находит файлы
Ручная сортировка файлов по разрешениям
вот парочка на вскидку...
1
-=ЮрА=-
Заблокирован
Автор FAQ
12.09.2011, 14:28 #8
Также возможен поиск c использованием IShellFolder (кстати в этом случае можно накапливать массив LPITEMIDLIST-ов из которых методом ParseDisplayName получать полные пути - такой подход сам юзаю сейчас от FindFirst(Next)File уже отказался, как от ресурсозатратного метода)
IShellFolder::EnumObjects > IEnumIDList->Next
0
fasked
Эксперт С++
4945 / 2525 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
12.09.2011, 14:51 #9
-=ЮрА=-, так это только под форточки...
0
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
12.09.2011, 15:43 #10
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <iostream>
#include <vector>
#include <iterator>
#include <string>
 
#include <boost/filesystem.hpp>
#include <boost/program_options/parsers.hpp>
#include <boost/program_options.hpp>
 
namespace po = boost::program_options;
namespace fs = boost::filesystem;
 
po::options_description arguments("Commands");
 
po::variables_map register_config(int argc, char* argv[])
{
    arguments.add_options()
        ("help", "show this message")
        ("directory,d", po::value<std::string>(), "full path directory for search in")
        ("file,f", po::value<std::string>(), "file name for search")
        ("ext,e", po::value<std::string>(), "extension for search")
    ;
    po::variables_map result;
    po::store(po::parse_command_line(argc, argv, arguments), result);
    po::notify(result);
    return result;
}
 
std::vector<fs::path> find_files_by_name(const std::string& directory, const std::string& file)
{
    fs::recursive_directory_iterator end;
    fs::path path(directory);
    std::vector<fs::path> result;
    for (fs::recursive_directory_iterator iter(path); iter != end;
         ++iter)
    {
        const fs::path& file_path = iter->path();
        if (file_path.filename() == file)
        {
            result.push_back(file_path);
        }
    }
    return result;
}
 
std::vector<fs::path> find_files_by_ext(const std::string& directory, const std::string& ext)
{
    fs::recursive_directory_iterator end;
    fs::path path(directory);
    std::vector<fs::path> result;
    for (fs::recursive_directory_iterator iter(path); iter != end;
         ++iter)
    {
        const fs::path& file_path = iter->path();
        if (file_path.extension() == ext)
        {
            result.push_back(file_path);
        }
    }
    return result;
}
 
int main(int argc, char* argv[])
{
    po::variables_map params = register_config(argc, argv);
    std::string directory;
    std::string file;
    std::string ext;
    if (params.count("directory"))
    {
        directory = params["directory"].as<std::string>();
    }
    if (params.count("file"))
    {
        file = params["file"].as<std::string>();
    }
    if (params.count("ext"))
    {
        ext = params["ext"].as<std::string>();
    }
    if (directory.empty() && (file.empty() || ext.empty()))
    {
        std::cerr << "usage: " << arguments << std::endl;
        return 1;
    }
    std::vector<fs::path> paths;
    if (!file.empty())
    {
        paths = find_files_by_name(directory, file);
        std::cout << "Files with name: " << file << ":" << std::endl;
        std::copy(paths.begin(), paths.end(), std::ostream_iterator<fs::path>(std::cout, "\n"));
    }
    if (!ext.empty())
    {
        paths = find_files_by_ext(directory, ext);
        std::cout << "Files with ext: " << ext << ":" << std::endl;
        std::copy(paths.begin(), paths.end(), std::ostream_iterator<fs::path>(std::cout, "\n"));
    }
    return 0;
}
Код
forever@pterois:~/My_pro1/test_library/tests$ ./tag_test -d /home/forever/My_pro1/python/Gray\ Hat\ Python/src/ -e .py
Files with ext: .py:
/home/forever/My_pro1/python/Gray Hat Python/src/uno_work.py
/home/forever/My_pro1/python/Gray Hat Python/src/Test_m.py
/home/forever/My_pro1/python/Gray Hat Python/src/card_stat.py
/home/forever/My_pro1/python/Gray Hat Python/src/ooHelper.py
/home/forever/My_pro1/python/Gray Hat Python/src/chapter1-printf.py
/home/forever/My_pro1/python/Gray Hat Python/src/card_reg.py
/home/forever/My_pro1/python/Gray Hat Python/src/ereport.py
/home/forever/My_pro1/python/Gray Hat Python/src/my_module.py
/home/forever/My_pro1/python/Gray Hat Python/src/card_registry.py


forever@pterois:~/My_pro1/test_library/tests$ ./tag_test -d /home/forever/My_pro1/python/Gray\ Hat\ Python/src/ -f my_module.py
Files with name: my_module.py:
/home/forever/My_pro1/python/Gray Hat Python/src/my_module.py
3
12.09.2011, 15:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.09.2011, 15:43
Привет! Вот еще темы с ответами:

Создать программу, реализующую: создание файла, просмотр файла, поиск по файлу, выход - C++
Создать программу, которая может осуществлять такие действия(меня программы): создание файла, просмотр файла, поиск по файлу, выход. Каждое...

Разработать програмный комплекс для решения задачи - C++
&quot;Для определения рентабельности парикмахерской используют прибыль на одного работающего.В ЭВМ поступают данные о названии...

блок-схема алгоритма и програмный код функции - C++
Прошу помочь с данным заданием. Напишите блок-схему алгоритма и програмный код функции с коментариями. Для функции передаваемые...

Поиск файла - C++
Необходимо выполнить поиск файла во всех директориях на диске, зная только имя файла Возможно ли это сделать на чистом с++, если да то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru