rename , _wrename
Каждая из этих функций при успешном выполнении возвращает 0. При возникновении ошибки функция возвращает ненулевое значение и задает для errno одно из следующих значений:
| Значение errno | Условие |
|---|---|
| EACCES | Файл или каталог, указанный с помощью, newname уже существует или не может быть создан (недопустимый путь); или oldname является каталогом, и newname указывает другой путь. |
| ENOENT | Файл или путь, указанный в, oldname не найден. |
| EINVAL | Имя содержит недопустимые символы. |
Remarks
rename Функция переименовывает файл или каталог, заданный параметром, oldname на имя, заданное newname параметром. Старое имя должно быть путем к существующему файлу или каталогу. Новое имя не должно быть путем к существующему файлу или каталогу. С помощью rename можно переместить файл из одного каталога или устройства в другое, указав другой путь в newname аргументе. Однако нельзя использовать rename для перемещения каталога. Каталоги можно переименовать, но нельзя перемещать.
_wrename — это двухбайтовая версия _rename ; аргументы для _wrename представляют собой двухбайтовые строки. Поведение _wrename и _rename идентично в противном случае.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это, см. раздел глобальное состояние в CRT.
Статья C# Как переименовать файл?
В этой заметке будет показано, как можно получить и изменить имена и расширения всех файлов в выбранной вами папке.
Решение:
Для начала создадим обычное Windows Forms приложение, после чего на форму поместим одну кнопку и один control folderBrowserDialog, который переименуем в fbd.
Поместите код в обработчик события Button.Click
Основные моменты
Как видно в массиве храниться полный путь к каждому файлу.
2. Переименование файла будет осуществляться при помощи метода Move, в который передается два параметра: полный путь к файлу, который нужно перенести или переименовать и новый путь + новое имя файла, либо текущий путь + новое имя файла.
Так как в этом примере файл перемещать не требуется, то изменим лишь только имя файла.
3. Первый параметр у нас уже есть, он хранится в массиве files, осталось получить второй параметр.
Для начала нужно удалить старое имя файла
C:\ff\ — путь Текстовый документ — имя файла .txt — расширение
Воспользуемся методом LastIndexOf(), который в строке
C:\ff\Текстовый документ.txt
найдет индекс последнего слеша после чего, используя метод Remove, удалим всё, что идёт после него.
C:\ff\Текстовый документ.txt -> C:\ff\
Переименовать файл в C #
Взгляните на System.IO.File.Move , «переместите» файл под новым именем.
В методе File.Move он не будет перезаписывать файл, если он уже существует. И это бросит исключение.
Поэтому нам нужно проверить, существует ли файл или нет.
Или окружите его попыткой, чтобы избежать исключения.
Вы можете использовать, File.Move чтобы сделать это.
Избегайте System.IO.File.Move размещенных здесь решений (отмеченный ответ включен). Это терпит неудачу по сетям. Однако шаблон копирования / удаления работает локально и по сетям. Воспользуйтесь одним из решений для перемещения, но замените его на «Копировать». Затем используйте File.Delete, чтобы удалить исходный файл.
Вы можете создать метод Rename, чтобы упростить его.
Используйте сборку VB в C #. Добавить ссылку на Microsoft.VisualBasic
Затем переименовать файл:
Обе строки. Обратите внимание, что myfile имеет полный путь. newName не имеет. Например:
C:\whatever\ Папка теперь будет содержать b.txt .
Вы можете скопировать его как новый файл, а затем удалить старый, используя System.IO.File класс:
ПРИМЕЧАНИЕ. В этом примере кода мы открываем каталог и ищем PDF-файлы с открытыми и закрытыми круглыми скобками в имени файла. Вы можете проверить и заменить любой символ в имени, которое вам нравится, или просто указать новое имя, используя функции замены.