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

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

Войти
Регистрация
Восстановить пароль
 
Supernatural
604 / 203 / 30
Регистрация: 22.11.2010
Сообщений: 1,585
Записей в блоге: 1
#1

Проверка на существование папки - C++

10.07.2015, 23:18. Просмотров 1294. Ответов 12
Метки нет (Все метки)

C++
1
2
if (localadress) cout<<"Существует"; else cout<<"Надо создать";
if ("D:\\Games") cout<<"Существует"; else cout<<"Надо создать";
localadress имеет тип string
Мне нужно проверить существует ли папка на диске. 1 строка не работает, зато работает 2 строка. Какая между ними разница?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2015, 23:18
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Проверка на существование папки (C++):

Проверка на существование конкретной записи в файле - C++
Добрый день! Хочу проверить есть ли в файле уже введёный пользователем ID. Если такой ID уже есть, то вывести сообщение об этом и...

Std::string Проверка на существование индекса - C++
Здравствуйте. Есть следующая задача: Существует объект std::string. Необходимо сделать такое условие if(str == '0' &amp;&amp; str (вот тут...

Некорректная проверка на существование текстового файла - C++
Есть программа, которая обрабатывает текстовый файл(в данном случае саму себя) и после обработки создает новый файл. Несмотря на то, что...

Проверка на существование элемента по ключу. Линейные списки - C++
Собственно вроде все работает, только не получается сделать, чтобы при добавлении нового элемента делалась проверка по номеру, к примеру...

Проверка папки на пустоту - C++
Так как времени не было на это задание, пришлось сделать так: BOOL IsEmpty(const wchar_t* sPath) { HANDLE hFind; //дескриптор файла...

Получить название файлов с 1-ой папки , со 2-ой папки и вывести. Неправильный вывод - C++
Есть такая задача: получить название файлов с 1-ой папки , со 2-ой папки и вывести название тех файлов , которые отличают эти папки между...

12
gray_fox
What a waste!
1551 / 1256 / 74
Регистрация: 21.04.2012
Сообщений: 2,634
Завершенные тесты: 3
10.07.2015, 23:18 #2
Цитата Сообщение от Supernatural Посмотреть сообщение
зато работает 2 строка
Она не работает.
1
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16711 / 6633 / 433
Регистрация: 12.06.2012
Сообщений: 19,880
Завершенные тесты: 1
10.07.2015, 23:19 #3
потому что чары могут привестись к булеву, а строка не может?
1
Supernatural
604 / 203 / 30
Регистрация: 22.11.2010
Сообщений: 1,585
Записей в блоге: 1
10.07.2015, 23:20  [ТС] #4
gray_fox, ок, только убедился. Но все равно - нужно проверить на существование.
0
KOPOJI
10.07.2015, 23:21
  #5

Не по теме:

gray_fox, работает. Смотря что от нее ожидают..

0
Supernatural
604 / 203 / 30
Регистрация: 22.11.2010
Сообщений: 1,585
Записей в блоге: 1
10.07.2015, 23:22  [ТС] #6
В с++ вообще есть такие средства? С подобными задачами я ранее не сталкивался, и сейчас в некотором замешательстве. Мне ее нужно оформить, желательно, в консольном виде.
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16711 / 6633 / 433
Регистрация: 12.06.2012
Сообщений: 19,880
Завершенные тесты: 1
10.07.2015, 23:24 #7
Supernatural, есть. Есть в бусте, есть в винапи, есть в цли, есть в юниксах.. Смотря что вам требуется
0
gray_fox
What a waste!
1551 / 1256 / 74
Регистрация: 21.04.2012
Сообщений: 2,634
Завершенные тесты: 3
10.07.2015, 23:27 #8
Цитата Сообщение от Supernatural Посмотреть сообщение
gray_fox, ок, только убедился. Но все равно - нужно проверить на существование.
В С++ такого "из коробки" нет. Надо использовать специфичные для ОС штуки/подключать сторонние библиотеки. Из первого - stat() есть почти везде, насколько я знаю.

Добавлено через 2 минуты
Ссылка на Linux man, на другую ОС надо будет погуглить.
0
ValeryS
Модератор
6962 / 5299 / 522
Регистрация: 14.02.2011
Сообщений: 17,870
10.07.2015, 23:29 #9
Цитата Сообщение от Supernatural Посмотреть сообщение
В с++ вообще есть такие средства?
конкретно в Си(С++) нет, он ничего не знает о файловой системе
зато знают библиотеки
Цитата Сообщение от KOPOJI Посмотреть сообщение
в бусте, есть в винапи, есть в юниксах..
например в винде
FindFile https://msdn.microsoft.com/ru-ru/library/x4dz98yx(v=vs.100).aspx
FindNextFile https://msdn.microsoft.com/ru-ru/library/7hf0fzw0(v=vs.100).aspx
1
Supernatural
604 / 203 / 30
Регистрация: 22.11.2010
Сообщений: 1,585
Записей в блоге: 1
10.07.2015, 23:31  [ТС] #10
Цитата Сообщение от KOPOJI Посмотреть сообщение
Смотря что вам требуется
мне нужно лишь проверить на наличие папки, как можно проще, приложение разрабатываю в виде Console Application
Цитата Сообщение от gray_fox Посмотреть сообщение
Ссылка на Linux man, на другую ОС надо будет погуглить.
Линукс это лишнее, строго под винду.

Добавлено через 2 минуты
ValeryS, то, что есть ф-я FindFile это замечательно, но мне бы просто верификацию на существование папки.
0
ValeryS
Модератор
6962 / 5299 / 522
Регистрация: 14.02.2011
Сообщений: 17,870
10.07.2015, 23:37 #11
Цитата Сообщение от Supernatural Посмотреть сообщение
но мне бы просто верификацию на существование папки.
ужель бы ты почитал ссылки, то знал бы что папка от файла отличается одним ключиком
и его можно проверить вручную а можно IsDirectory https://msdn.microsoft.com/ru-ru/library/scx99850.aspx
0
gray_fox
What a waste!
1551 / 1256 / 74
Регистрация: 21.04.2012
Сообщений: 2,634
Завершенные тесты: 3
10.07.2015, 23:45 #12
Цитата Сообщение от Supernatural Посмотреть сообщение
Линукс это лишнее, строго под винду.
Тогда смотри, что там есть в WinAPI; или <filesystem>

Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от KOPOJI Посмотреть сообщение
gray_fox, работает. Смотря что от нее ожидают..
Ну тут то как бы понятно, что хотят получить)

0
Геомеханик
759 / 565 / 387
Регистрация: 26.06.2015
Сообщений: 1,325
11.07.2015, 00:10 #13
Цитата Сообщение от Supernatural Посмотреть сообщение
Линукс это лишнее, строго под винду.
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <windows.h>
 
bool is_dir(const TCHAR* dir){
    DWORD flag = GetFileAttributes(dir);
    if(flag == 0xFFFFFFFFUL){
        if(GetLastError() == ERROR_FILE_NOT_FOUND)
            return false;
    }
    if(! (flag & FILE_ATTRIBUTE_DIRECTORY))
        return false;
    return true;
}
2
11.07.2015, 00:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2015, 00:10
Привет! Вот еще темы с ответами:

Существование указателя - C++
Есть линейный список(создаю эл-ты пока вручную). Если в последнем эл-те не присваивать ссылке на следующий нулю, то выдаст ошибку при...

Существование объекта - C++
Здравствуйте, есть довольно сложное и интересное задание Есть класс someClass нужно сделать так чтобы: 1) Его объекты можно было...

Указать на существование функции - C++
То что с++ не видит ничего ниже себя создает много проблем. У меня много файловый проект, не могу же я с линейкой бегать и измерять что...

Как проверить существование файла в С++? - C++
Облазил пол гугла, что за привычка писать часть кода, не показывая инклуды... Нарыл, добавил: #include &lt;cstring&gt; #include...


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

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

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