Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/30: Рейтинг темы: голосов - 30, средняя оценка - 4.60
4 / 1 / 0
Регистрация: 16.12.2015
Сообщений: 21

Поиск файла в текущем каталоге

23.06.2016, 01:33. Показов 6159. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа должна запрашивать с клавиатуры имя файла; и если он существует, выводить зелёным цветом в нижней строке экрана его размер; иначе – соответствующее сообщение.

Как я понял есть два способа, через консольные команды винды и через сверхсложный способ

Что-то такое крутится, на примере кода.
Но нужна помощь

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
#include <iostream>
#include <cstdlib>
#include <cstdio>
 
 
using namespace std;
 
int main() 
{
    setlocale(LC_ALL, "Russian");
    char str[1000];
    cout << "Введите имя файла:";
 
    if(true)
    {
        gets(str);
        system("cd C:\\     ");
        cout << system("dir");
    }
    else
    {
        cout << "Файл не найден" << endl;
    }
    system("pause");
    return 0;
}
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.06.2016, 01:33
Ответы с готовыми решениями:

Поиск файлов и папок в текущем каталоге
Добрый вечер!Нужна программа,которая при ее вызове,переходит в нужную папку(по имени) и выводит список файлов и папок.То есть изначально...

Разработать программу для поиска файла в текущем каталоге
Программа должна запрашивать с клавиатуры имя файла; и если он существует, прочесть из него несколько целых чисел и подсчитать количество...

Реализовать поиск файла в каталоге и вывод на консоль заданных атрибутов найденного файла
Приведите, пожалуйста, пример кода программы, которая ищет файлы, находящиеся в каталоге, и выдаёт на консоль имя, тип и дату последней...

7
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
23.06.2016, 08:03
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <fstream>
using namespace std;
int main() 
{
    setlocale(LC_ALL, "Russian");
    char str[1000];
    cout << "Введите имя файла:";
    cin.getline(str,100);
    ifstream ff(str);
    if(ff)
    {
        ff.seekg(0,ios::end);
        streamoff p=ff.tellg();
        cout << "file size="<<p<<endl;
    }else
        cout << "Файл не найден" << endl;
    system("pause");
    return 0;
}
1
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
23.06.2016, 16:36
begginer4815, Есть еще функции findfirst - findnext и их аналоги.
1
143 / 27 / 4
Регистрация: 06.05.2019
Сообщений: 1,837
Записей в блоге: 4
23.07.2021, 02:43
Цитата Сообщение от Байт Посмотреть сообщение
begginer4815, Есть еще функции findfirst - findnext и их аналоги.
у меня они не работают хотя функции подключил без проблем.

Добавлено через 34 минуты
В инструкции указано что нужен вызов Wow64DisableWow64FsRedirection может поэтому и не работает.

Добавлено через 16 минут
Перенастроил проект на 64 бита т.к. работал в 32 битном и всё равно не работает, так что фиг его знает что это за функции такие.
0
Just Do It!
 Аватар для XLAT
4211 / 2668 / 655
Регистрация: 23.09.2014
Сообщений: 9,077
Записей в блоге: 3
23.07.2021, 17:09
шёл 2021 год ...
под виндоз и ваще:
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
///----------------------------------------------------------------------------|
/// Поиск файла в древе каталогов.
///----------------------------------------------------------------------------:
///-------------------------------|
/// Конфиг.                       |
///-------------------------------:
/// Директория там где exe:
/// (или вбей тут свою...)
///const wchar_t* cfg_DIR_NOW = L"./";
const wchar_t* cfg_DIR_NOW = L"D:/!PROJECTS-2020/CBlock/";
///-------------------------------.
 
#define UNICODE
#include <iostream>
#include <list>
#include <filesystem>
 
namespace fs = std::filesystem;
 
///----------------------------------------------------------------------------|
/// Класс задачи.
///----------------------------------------------------------------------------:
struct Dir_work
{   struct Cash_record
    {   std::wstring name_file;
        std::wstring name_dir ;
    };
 
    void set_dir(std::wstring_view dir)
    {   if(dir_now != dir)
        {   dir_now = dir;
            make_cash();
        }
    }
 
    const Cash_record& is_exist_file(std::wstring_view user)
    {   static const Cash_record empty;
        if(user.empty())  return empty;
 
        for(const auto& s : cash)
        {   if(user == s.name_file)
            {   return s;
            }
        }
        return empty;
    }
 
    void informer(const Cash_record& s)
    {   if(!s.name_file.empty())
        {   std::wcout << L"\nФайл \""      << s.name_file << L"\" найден! "
                       << L"в директории:\n    \"" << s.name_dir  << "\"\n\n";
        }
        else std::wcout << L"\nХмм, такого файла тут нету ...\n\n";
    }
 
    void info(bool b = true)
    {   std::wcout << L"Всего найдено файлов: " << cash.size() << '\n';
        unsigned cnt = 0;
        if (b)
        for(const auto& s : cash)
        {   std::wcout << s.name_file << '\n';
            if(cnt++%20)
            {   std::wcout << "\nЧТОБЫ ПРОДОЛЖИТЬ ВЫВОД ЖМАКНИ ENTER ... \n\n";
            }
        }
        std::cout << '\n';
    }
 
private:
    std::wstring         dir_now;
    std::list<Cash_record>  cash;
 
    void make_cash()
    {   std::wcout << L"Тихо! идёт сбор данныххх ...\n";
        for(auto &file : fs::recursive_directory_iterator(dir_now))
        {   if(!fs::is_directory(file.path().filename()))
            {   cash.push_back({file.path().filename(),
                                file.path().parent_path()});
            }
        }
        info(false);
    }
};
 
///------------------------------|
/// Раз консоль видозная, то ... |
///------------------------------:
#include <windows.h>
std::wstring input_user()
{   std::wcout << L"Введите имя файла с расширением для поиска: ";
    std::string s;
    wchar_t d[256];
    std::getline(std::cin, s);
    OemToChar(s.data(), d);
    return std::wstring(d);
}
 
///----------------------------------------------------------------------------|
/// Тест.
///----------------------------------------------------------------------------:
int main()
{   setlocale(0,"");
    try
    {   Dir_work dir_work;
 
        while(true)
        {        dir_work.set_dir(cfg_DIR_NOW);
        auto t = input_user();
        auto r = dir_work.is_exist_file(t);
                 dir_work.informer(r);
        }
    }
    catch (fs::filesystem_error& e)
    {   std::wcout << e.what() << '\n';
    }
}
как выглядит "сеанс связи":
0
143 / 27 / 4
Регистрация: 06.05.2019
Сообщений: 1,837
Записей в блоге: 4
23.07.2021, 23:56
Цитата Сообщение от XLAT Посмотреть сообщение
filesystem
нужен 2017 стандарт для этой штуки. Мне интересно почему у меня не работает findfirst счас видео сниму.
0
24.07.2021, 00:00

Не по теме:

Цитата Сообщение от Nexi99 Посмотреть сообщение
нужен 2017 стандарт для этой штуки
Цитата Сообщение от XLAT Посмотреть сообщение
шёл 2021 год ...
Хм :/

0
143 / 27 / 4
Регистрация: 06.05.2019
Сообщений: 1,837
Записей в блоге: 4
24.07.2021, 01:07
У меня так https://www.youtube.com/watch?v=lEPrE4_nx34.
Если кто-то не верит можем через микогу созвониться и посмотрите сами.
Не ну я же придурок мне там советовали как окно на передний план выдвинуть, возможно к этой функции что-то нужно я не знаю что.

Добавлено через 1 минуту
и кстати вызов Wow64DisableWow64FsRedirection тоже не помогает пробовал.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.07.2021, 01:07
Помогаю со студенческими работами здесь

Поиск файла в указанном каталоге
имеется рабочий код на Visual C++ 2008, который выводит на экран список всех файлов с расширением cpp,которых он ищет в своем каталоге....

Реализовать удаление файлов в текущем каталоге
Помогите решить такую задачу по &quot;Информационной безопасности&quot;, надо написать такую программу что когда пользователь запускает программу, в...

Поиск файла в каталоге если нет , то создать
Добрый день , облазил кучу сайтов , но не нашел ответ на вопрос ... Как создать файл если он отсутствует ? И как указать каталог для...

Вывести на экран в текущем каталоге имена тех каталогов, которые в себе не содержат подкаталогов
Здравствуйте.. Выдали данное задание на С++ под linux Разработать программу, которая выводит на экран в текущем каталоге имена тех...

Поиск файлов в каталоге Linux
Здравствуйте, мне нужно найти все файлы в опр. каталоге (на Linux), не подскажите, как это осуществить? Я это осуществил на OC...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru