Функция rename
Функция rename изменяет имя файла или каталога, указанного в oldfilename на новое имя, указанное в newfilename .
Если в oldfilename и newfilename указать разные пути, и, если это поддерживается системой, файл будет перемещен в новое место.
Эта операция производится непосредственно с файлом, нет потоков, участвующих в операции.
Параметры:
- oldfilename
Cи-строка, содержащая имя файла, который будет переименован и (или) перемещен. Этот файл должен существовать и быть доступным. - newfilename
Cи-строка, содержащая новое имя файла. Она не должно быть именем существующего файла, если это так, то результат работы программы будет непредсказуем, а точнее, он будет зависеть от того, как среагирует используемая ОС, может быть или отказ или переопределение.
Возвращаемое значение
Если файл успешно переименован, возвращается нулевое значение.
В случае ошибки, возвращается ненулевое значение и макрос ERRNO инициализируется соответствующим кодом ошибки.
Ошибка — числовое значение, представляющее тип сбоя.
Строка, интерпретирующая это значение может быть выведена на стандартный поток ошибок при вызове функции perror .
Пример: исходный код программы
// пример использования функции: rename для переименования файла #include // для оператора cout #include // для функции rename int main () < char oldfilename[] = "oldfilename.txt"; // старое имя файла char newfilename[] = "newfilename.txt"; // новое имя файла if ( rename( oldfilename, newfilename ) == 0 ) // переименование файла std::cout
Пример работы программы
Если файл oldfilename.txt может быть успешно переименован в newfilename.txt , следующее сообщение будет выведено на стандартный вывод:
CppStudio.com
Файл успешно переименован
В противном случае, сообщение, похожее на это будет показано на экране:
Изменение имени файла в C# (си шарп)
Появилась задача считать и переименовать файлы в папке, но не слишком хорошо понимаю как это сделать через move(((
Вот код как считываю. надо к имени файла добавить символы с начала и с конца и поменять формат
DirectoryInfo directorya = new DirectoryInfo(@"C:\Users\a\Desktop\PB4V35+"); foreach (var spysok in directorya.GetFiles("*.MST")) Console.WriteLine(spysok);
через move это так:
File.Move(oldFileName, newFileName);
указываем старое имя (какой файл нужно переименовать) и новое имя (в какое надо переименовать).
например, если нужно в начале каждого имени *.txt дописать ff:
DirectoryInfo d = new DirectoryInfo(@"c:\dir\"); FileInfo[] infos = d.GetFiles("*.txt"); foreach(FileInfo f in infos) < File.Move(f.FullName, Path.Combine(f.DirectoryName, "ff" + f.Name)); >
Случайные статьи
- Подсчитать количество точек в строке
- Как заблокировать раздел жесткого диска от записи?
- Поиск и подсчет слов в Memo
- Построчные способы загрузки информации в memo
- Как сделать выпадающий список с добавлением новых элементов?
- Вывод текста из файла случайным образом
- Очистить все edit’ы на форме
- Получить температуру процессора
- Сортировка массива методом пузырька. Пример.
- Использовать компонент в своей процедуре
Купить рекламу на сайте за 1000 руб
пишите сюда — alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
- Форум Web программирование (веб)
-
- Форум Python (питон)
- Форум PHP (пхп)
- Форум Perl (перл)
- Форум Ruby (руби)
- Форум JavaScript (яваскрипт)
- Форум Ajax (аякс)
- Форум SQL (эскюэл)
- Форум HTML (хтмл)
- Форум CSS (сиэсэс)
- Форум XML (иксмл)
- Форум JSON (джсон)
- Форум Pascal (паскаль)
- Форум Delphi (делфи)
- Форум C++ (си плюс плюс)
-
- Форум C++ Builder (си билдер)
- Форум Visual C++ (визуал си)
- Форум .NET (точка нет)
- Форум ASP.NET (асп нет)
- Форум Windows Forms (виндовс формс)
- Форум базы данных ADO.NET (адо нет)
- Форум .NET Framework WPF, UWP, WinRT, XAML ()
- Форум Java Android (джава андроид)
- Форум Java web (джава веб)
- Форум Kotlin (котлин)
- Форум Assembler (ассемблер)
- Форум WinApi (вин апи)
- Форум Excel (эксель)
- Форум Word (ворд)
- Форум Access (аксесс)
- Форум по администрированию ОС
- Форум по администрированию серверов и VDS
- Форум Windows
- Форум Ubuntu
- Форум Android
Переименование файлов
Как сделать такое задание: Перед каждым именем файла (regular file) вставить его номер (1, 2, 3 и т. д.). Номер выставляется в соответствии с тем, в каком порядке выдает результаты функция FindFirstFile, FindNextFile. Смог сделать только это:
#include #include #include using namespace std; //strcpy, strcat //_tcscpy,_tcscat int main() < DWORD dwError = 0; setlocale(LC_ALL, "rus"); WIN32_FIND_DATA find; HANDLE hFind = FindFirstFile(_T("C:\\test\\*"), &find); < if (INVALID_HANDLE_VALUE == hFind) < cout do < if (!(find.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY) && !(find.dwFileAttributes == FILE_ATTRIBUTE_DEVICE)) _tprintf(_T("%s\n"), find.cFileName); >while (FindNextFile(hFind, &find) != NULL); dwError = GetLastError(); if (dwError == ERROR_NO_MORE_FILES) < FindClose(hFind); cout >////нет проверки на успешность FindFirstFile FindClose(hFind); ////нет проверки на успешность FindClose coutА как переименовывать файлы не понимаю
Отслеживать
задан 6 янв 2017 в 15:05
21 1 1 серебряный знак 2 2 бронзовых знака3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Для переименования файлов есть сишная функция rename()
int rename(const char *old_filename, const char *new_filename)BOOL WINAPI MoveFile( _In_ LPCTSTR lpExistingFileName, _In_ LPCTSTR lpNewFileName );Но учтите, что переименовывать файлы внутри цикла FindFirstFile / FindNextFile нельзя. Иначе цикл будет находить новые файлы.
Вам нужно в этом цикле сложить все имена файлов в массив, вызвать FindClose() , а потом пробежаться по этому массиву и переименовать файлы
Статья C# Как переименовать файл?
В этой заметке будет показано, как можно получить и изменить имена и расширения всех файлов в выбранной вами папке.
Решение:
Для начала создадим обычное Windows Forms приложение, после чего на форму поместим одну кнопку и один control folderBrowserDialog, который переименуем в fbd.Поместите код в обработчик события Button.Click
private void button1_Click(object sender, EventArgs e) < //с помощью диалога выбираем папку с файлами DialogResult result = fbd.ShowDialog(); if (result == DialogResult.OK) < //Получить все файлы в папке string [] files = Directory.GetFiles(fbd.SelectedPath); int ind = 0; for (int i=0; i < files.Length; i++) < //поиск индекса последнего слеша ind = files[i].LastIndexOf('\\'); //переименование File.Move(files[i], files[i].Remove(ind + 1) + i +".txt"); >MessageBox.Show("Готово!"); > >Основные моменты
using System.IO;1. Получаем все файлы в выбранной директории и загоняем их в массив.
Содержимое массива files:files[0] = C:\ff\Текстовый документ.txt files[1] = C:\ff\Текстовый документ(2).txtКак видно в массиве храниться полный путь к каждому файлу.
2. Переименование файла будет осуществляться при помощи метода Move, в который передается два параметра: полный путь к файлу, который нужно перенести или переименовать и новый путь + новое имя файла, либо текущий путь + новое имя файла.
Так как в этом примере файл перемещать не требуется, то изменим лишь только имя файла.File.Move(@"C:\ff\Текстовый документ.txt", @"C:\ff\0.txt");3. Первый параметр у нас уже есть, он хранится в массиве files, осталось получить второй параметр.
Для начала нужно удалить старое имя файла
C:\ff\ — путь Текстовый документ — имя файла .txt — расширениеВоспользуемся методом LastIndexOf(), который в строке
C:\ff\Текстовый документ.txtнайдет индекс последнего слеша после чего, используя метод Remove, удалим всё, что идёт после него.
C:\ff\Текстовый документ.txt -> C:\ff\После чего добавляем новое имя файла и расширение.