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

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

Войти
Регистрация
Восстановить пароль
 
Zer0_CooL
15 / 15 / 2
Регистрация: 21.12.2011
Сообщений: 72
#1

Изменить расширения файлов - C++

15.03.2013, 02:13. Просмотров 554. Ответов 3
Метки нет (Все метки)

Подскажите пожалуйста, как найти все файлы в некоторой папке с расширением *.xxx и изменить им расширение на *.yyy?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2013, 02:13     Изменить расширения файлов
Посмотрите здесь:

можно ли изменить имена объектов cin и cout? залесть в хедер (знаю, этого лучше не делать), и изменить обявление обектов? к примеру на chitai и pishi? C++
C++ Удаление файлов определенного расширения
C++ Как узнать и изменить режим отображения скрытых и системных файлов в Windows?
Можно ли на MS VC 2010 express ставить расширения C++
Добавление расширения файла C++
C++ Поиск файлов определенного расширения
C++ По поводу расширения окна
Сортировка файлов по папкам в зависимости от расширения C++
Регулярное выражение для получения списка файлов определенного расширения C++
C++ Опрос папки и удаление из неё всех файлов кроме заданного расширения
C++ Программа шифрования файлов с возможностью расширения функционала
C++ Как изменить расширение файлов в папке средствами C++ (возможно, есть какой-то аналог changefileext из делфи)?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
UnsKneD
алкокодер
153 / 149 / 11
Регистрация: 27.12.2012
Сообщений: 548
15.03.2013, 07:59     Изменить расширения файлов #2
Zer0_CooL, это обязательно делать на C++?
Zer0_CooL
15 / 15 / 2
Регистрация: 21.12.2011
Сообщений: 72
15.03.2013, 12:36  [ТС]     Изменить расширения файлов #3
Цитата Сообщение от UnsKneD Посмотреть сообщение
Zer0_CooL, это обязательно делать на C++?
Ну можно с использованием .NET или boost библиотек.

Добавлено через 2 часа 21 минуту
Пока только придумал вариант с использованием .NET, но может есть лучше решение?
C++
1
2
3
4
5
6
7
8
9
10
void ChangeFileExtension(System::String^path, System::String^oldExt, System::String^newExt)
{
    using namespace System;
    using namespace System::IO;
 
    array<String^>^files = Directory::GetFiles(path, ("*" + oldExt));
 
    for each (String^file in files)
        File::Move(file, Path::ChangeExtension(file, newExt));
}
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
15.03.2013, 13:46     Изменить расширения файлов #4
Юзайте http://www.boost.org/doc/libs/1_52_0...reference.html

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <boost/filesystem.hpp>
#include <iostream>
 
int main()
{
   namespace fs = boost::filesystem;
 
   const std::string dir = "testdir", ext = "txt", new_ext = "new";
   fs::path p(dir);
   for (fs::directory_iterator pos(p); pos != fs::directory_iterator(); ++pos)
   {
      const fs::path& p = pos->path();
      const std::string p_ext = p.extension().generic_string();
      if (fs::is_regular_file(p) && !p_ext.empty() && p_ext.substr(1) == ext)
      {
         fs::path new_p = p;
         new_p.replace_extension(fs::path("." + new_ext));
         fs::rename(p, new_p);
      }
   }
}
Bash
1
2
3
4
5
6
forever@pterois:~/My_pro1/cpp_pro/testdir$ ls
1.txt  2.txt  3.exe  4.txt  5.jpg
forever@pterois:~/My_pro1/cpp_pro$ g++ -o new new.cpp -lboost_filesystem -lboost_system
forever@pterois:~/My_pro1/cpp_pro$ ./new
forever@pterois:~/My_pro1/cpp_pro/testdir$ ls
1.new  2.new  3.exe  4.new  5.jpg
Yandex
Объявления
15.03.2013, 13:46     Изменить расширения файлов
Ответ Создать тему
Опции темы

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