Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.06.2018, 15:25   #1
Михаил1990
Пользователь
 
Регистрация: 17.05.2018
Сообщений: 29
По умолчанию LPCTSTR создание массива

Добрый день!
Имею фунцию
Код:
SearchFiles("C:\\Users\\Admin\\Desktop\\*.jpeg", DoSomething, TRUE);
Ищет на рабочем столе все фото
Код:
void DoSomething(LPCTSTR lpszFileName)
{
	//CopyFile(lpszFileName,	"C:\\Users\\Admin\\Documents\\txt\\",true);
	MessageBox(NULL, lpszFileName, "Find File", MB_OK | MB_APPLMODAL);
}
В переменной lpszFileName значение не имени самого файла, а пути по которому он расположен
Код:
C:\\Users\\Admin\\Desktop\\photo_1.jpeg
Вот думаю как лучше сделать, что бы все найденные файлы в 1 папку копировать.
У меня проблема создать массив LPCTSTR неопред размера и добавлять по индексу пути, для того что бы потом из индексов брать и копировать по ним.
Михаил1990 вне форума Ответить с цитированием
Старый 21.06.2018, 15:43   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

1. LPCTSTR - это просто указатель на чар/вчар.
2. Зачем вам массив, если вы все равно в поиске по одному получаете?
3. Забыть/забить на ВинАПИ и использовать <filesystem>. Поиск можно, копировать можно, ...
p51x вне форума Ответить с цитированием
Старый 21.06.2018, 15:58   #3
Михаил1990
Пользователь
 
Регистрация: 17.05.2018
Сообщений: 29
По умолчанию

Подскажите в этом filesystem можно сделать рекурсивный поиск ? по маске "*.txt"

Цитата:
Сообщение от p51x Посмотреть сообщение
1. LPCTSTR - это просто указатель на чар/вчар.
2. Зачем вам массив, если вы все равно в поиске по одному получаете?
3. Забыть/забить на ВинАПИ и использовать <filesystem>. Поиск можно, копировать можно, ...
Я в винапи потихоньку разбираюсь. filesystem в VS определить не могу.

Последний раз редактировалось Вадим Мошев; 21.06.2018 в 23:12.
Михаил1990 вне форума Ответить с цитированием
Старый 21.06.2018, 16:08   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от Михаил1990 Посмотреть сообщение
Подскажите в этом filesystem можно сделать рекурсивный поиск ? по маске "*.txt"
Берете рекурсивный-итератор-по-папке, перебираете файлы и либо проверяете регэкспом, либо файндом, либо вызываете метод для получение расширения файла и сравниваете.

Цитата:
filesystem в VS определить не могу.
Экспереминтал/файлсистемс пробовали? Какая версия студии?
p51x вне форума Ответить с цитированием
Старый 21.06.2018, 16:10   #5
Михаил1990
Пользователь
 
Регистрация: 17.05.2018
Сообщений: 29
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Берете рекурсивный-итератор-по-папке, перебираете файлы и либо проверяете регэкспом, либо файндом, либо вызываете метод для получение расширения файла и сравниваете.


Экспереминтал/файлсистемс пробовали? Какая версия студии?
VS 2010 express пробовал
Михаил1990 вне форума Ответить с цитированием
Старый 21.06.2018, 16:12   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Нее... это слишком новая. Возьмите VS 6. Вы давно на улицу выглядывали или в календарь?
p51x вне форума Ответить с цитированием
Старый 21.06.2018, 16:17   #7
Михаил1990
Пользователь
 
Регистрация: 17.05.2018
Сообщений: 29
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Нее... это слишком новая. Возьмите VS 6. Вы давно на улицу выглядывали или в календарь?
Можете с примером на filesystem помочь? Рекурсивный поиск по маске в папках?
Михаил1990 вне форума Ответить с цитированием
Старый 21.06.2018, 16:21   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Так я вам его написал. Запишите просто на языке с for и т.д.
p51x вне форума Ответить с цитированием
Старый 21.06.2018, 20:01   #9
Михаил1990
Пользователь
 
Регистрация: 17.05.2018
Сообщений: 29
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Так я вам его написал. Запишите просто на языке с for и т.д.
поставил студию 2015, немножко разобрался.
Подскажите проверку по расширению (*.jpeg) можно организовать?
Код:
#include <fstream> 
#include <iostream> 
#include <experimental/filesystem>
namespace fs = std::experimental::filesystem;

int main()
{

	for (auto& p : fs::recursive_directory_iterator("C:\\Users\\Admin\\Downloads\\"))
		
		std::cout << p << '\n';

}
Ошибка
Код:
	for (auto& s : fs::recursive_directory_iterator("C:\\Users\\Admin\\Downloads\\"))


	if (s.status == "*.txt")
		std::cout << s << '\n';

Последний раз редактировалось Вадим Мошев; 21.06.2018 в 23:13.
Михаил1990 вне форума Ответить с цитированием
Старый 21.06.2018, 20:15   #10
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Ну так в чем затруднения? Как я уже сказал, из_регулар_файл, паф->екстенсион = jpeg

А статус тут причем? Он даже звучит не так...
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Приведение массива char[] (или char* ) в LPCTSTR polin11 Общие вопросы C/C++ 3 29.07.2015 17:01
Работа с иконками(ошибка с LPCTSTR) - №2 zipo666 Общие вопросы C/C++ 5 11.02.2012 01:16
Работа с иконками в с++(ошибка с LPCTSTR) zipo666 Общие вопросы C/C++ 2 10.02.2012 04:10
int --> LPCTSTR LockHeart Общие вопросы C/C++ 3 17.11.2011 10:24
_bstr_t -> LPCWSTR-> LPCTSTR->LPCSTR Lindemann66 Qt и кроссплатформенное программирование С/С++ 1 17.08.2011 16:45