Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Существование файла 
:(
    Опции темы
ТарасАтавин
Дата 27.8.2013, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 26.8.2013

Репутация: нет
Всего: нет



Дан полный путь к файлу в строке std::wstring. С именем и расширением. Как лучше проверить, существует ли он?


--------------------
Не так всё плохо, как оно есть на самом деле.
PM MAIL   Вверх
SenkraD
Дата 27.8.2013, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

Репутация: 2
Всего: 23



ну если чисто по плюсовому, то как-то так:
Код

bool fexists(std::wstring const&filename)
{
    std::wifstream file(filename.c_str());
    return file;
}
, а с точки зрения кода лучше так:
Код

std::wifstream file(filename.c_str());
if (file)
{
    // read data from file.
}


ну еще можно посмотреть boost::filesystem::exist, PathFileExists для Windows или access для Unix


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
Amp
Дата 27.8.2013, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 886
Регистрация: 17.2.2009

Репутация: 3
Всего: 17



Чисто по-плюсовому wifstream не проглотит wchar_t-ы в конструкторе.

Это сообщение отредактировал(а) Amp - 27.8.2013, 13:08
PM MAIL   Вверх
akizelokro
Дата 27.8.2013, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: 1
Всего: 5



В Винде проглотит


--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
ТарасАтавин
Дата 27.8.2013, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 26.8.2013

Репутация: нет
Всего: нет



Цитата(SenkraD @  27.8.2013,  12:33 Найти цитируемый пост)
std::wifstream file(filename.c_str());
Мне надо проверять в цикле, но я не хочу заводить для этого собственную функцию. Апишная есть для таких целей? Хорошо бы даже без лишней переменной.


Это сообщение отредактировал(а) ТарасАтавин - 27.8.2013, 13:48


--------------------
Не так всё плохо, как оно есть на самом деле.
PM MAIL   Вверх
SenkraD
Дата 27.8.2013, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

Репутация: 2
Всего: 23



ну я ссылки на апишные функции для разных платформ дал. судя по теме в winapi разделе у вас, таки, Windows, а там есть это


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
ТарасАтавин
Дата 27.8.2013, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 26.8.2013

Репутация: нет
Всего: нет



Цитата(SenkraD @  27.8.2013,  13:47 Найти цитируемый пост)
ну я ссылки на апишные функции для разных платформ дал. судя по теме в winapi разделе у вас, таки, Windows, а там есть это 
Она и есть. Только кодоблоки функцию не знают. В какой голове она декларирована и как подцепить тело функции?


Это сообщение отредактировал(а) ТарасАтавин - 27.8.2013, 13:52


--------------------
Не так всё плохо, как оно есть на самом деле.
PM MAIL   Вверх
SenkraD
Дата 27.8.2013, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

Репутация: 2
Всего: 23



ну там в документации все указано
Код

#include <Shlwapi.h>
#pragma comment(lib, "Shlwapi") //  для MS VC 



--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
ТарасАтавин
Дата 27.8.2013, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 26.8.2013

Репутация: нет
Всего: нет



Цитата(SenkraD @  27.8.2013,  14:00 Найти цитируемый пост)
#pragma comment(lib, "Shlwapi") //  для MS VC 
А разве кодоблоки понимают прагму?

Добавлено через 3 минуты и 1 секунду

-------------- Build: Debug in IDE ---------------

Linking console executable: bin\Debug\IDE.exe
..\..\..\..\..\..\..\MinGW\lib\shlwapi.lib: file not recognized: File format not recognized
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)
0 errors, 0 warnings
 



--------------------
Не так всё плохо, как оно есть на самом деле.
PM MAIL   Вверх
bsa
Дата 27.8.2013, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Цитата(ТарасАтавин @  27.8.2013,  15:18 Найти цитируемый пост)
А разве кодоблоки понимают прагму?
Интересно, а для кого был написан комментарий "для MS VC"?
PM   Вверх
Dem_max
Дата 28.8.2013, 05:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 4
Всего: 39



Цитата(bsa @ 27.8.2013,  16:10)
Цитата(ТарасАтавин @  27.8.2013,  15:18 Найти цитируемый пост)
А разве кодоблоки понимают прагму?
Интересно, а для кого был написан комментарий "для MS VC"?

Не учите Тараса с 18 летним стажем программирования !!!  smile 


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
borisbn
Дата 28.8.2013, 06:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



>А разве кодоблоки понимают прагму?
Новый компилятор? Интересно...


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
ТарасАтавин
Дата 29.8.2013, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 26.8.2013

Репутация: нет
Всего: нет



Цитата(bsa @  27.8.2013,  16:10 Найти цитируемый пост)
Интересно, а для кого был написан комментарий "для MS VC"? 

Цитата(Dem_max @  28.8.2013,  05:08 Найти цитируемый пост)
Не учите Тараса с 18 летним стажем программирования !!!

А для кого в самом вопросе упомянута среда разработки?



--------------------
Не так всё плохо, как оно есть на самом деле.
PM MAIL   Вверх
akizelokro
Дата 29.8.2013, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: 1
Всего: 5



Цитата(ТарасАтавин @  29.8.2013,  11:29 Найти цитируемый пост)
А для кого в самом вопросе упомянута среда разработки?


ну, у разных сред разработок (фактически, компиляторов) есть свои особенности.
Наверно, упоминули для тебя или кто ещё воспользуется этим советом.



--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0547 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.