- How to rename/move file or directory in Java
- 1. Rename File/Directory Example with renameTo() method
- 2. Move File Example with renameTo() method
- 3. Rename File/Directory Example with Files.move() method
- 4. Move File/Directory Example with Files.move() method
- API References:
- Related File IO Tutorials:
- Other Java File IO Tutorials:
- About the Author:
- Как поменять название файла java
- Работа с каталогами
- Работа с файлами
- Переименовать файл в Java
- Переименование файла с помощью метода renameTo() в Java
- Переименование файла с помощью метода move() в Java
- Переименование файла с помощью метода move() в Java
- Переименование файла с помощью библиотеки Apache commons в Java
- Сопутствующая статья — Java File
How to rename/move file or directory in Java
To rename or move a file/directory in Java, you can use either the renameTo() method of a File object in the old File I/O API, or the Files.move() method in the new Java NIO API.
1. Rename File/Directory Example with renameTo() method
The following example renames a file to a new name in the current directory:
File sourceFile = new File(«Notes.txt»); File destFile = new File(«Keynotes.txt»); if (sourceFile.renameTo(destFile)) < System.out.println("File renamed successfully"); >else
As you can see in this example, the renameTo() method returns a boolean value indicating the renaming succeeded (true) or failed (false) — so you should always check its return value.
If the destination file exists, the method returns false.
The following example renames the directory “test” to “dist” in the current directory:
File sourceFile = new File(«test»); File destFile = new File(«dist»); if (sourceFile.renameTo(destFile)) < System.out.println("Directory renamed successfully"); >else
2. Move File Example with renameTo() method
If the path of the destination File points to another directory, the source file will be moved. The following example moves a file from the current directory to another one (also renames it):
File sourceFile = new File(«CoverPhoto.png»); File destFile = new File(«D:/Photo/ProfilePhoto.png»); if (sourceFile.renameTo(destFile)) < System.out.println("File moved successfully"); >else
NOTE: You cannot use the renameTo() method to move directory, even the directory is empty.
This method is platform-dependent and is not guaranteed to work in all cases. So it is recommended to use the Files.move() method in Java NIO as described below.
3. Rename File/Directory Example with Files.move() method
The static move() method of the Files class in the java.nio.file package is platform-independent and have options to replace the destination file if exists:
Files.move(Path source, Path target, CopyOptions… options)
This method returns the path to the target file, and throws exception if the operation failed.
The following example renames a file in the current directory:
Path source = Paths.get("Notes.txt"); Files.move(source, source.resolveSibling("Keynotes.txt"));
If the target file exists, this method throws java.nio.file.FileAlreadyExistsException . You can specify the option to replace the existing file like this:
Path source = Paths.get("Notes.txt"); Files.move(source, source.resolveSibling("Keynotes.txt"), StandardCopyOption.REPLACE_EXISTING);
Path source = Paths.get("photo"); Files.move(source, source.resolveSibling("photos"));
If the target dir exists, it throws FileAlreadyExistsException . You can fore to replace the existing directory with the copy option:
Path source = Paths.get("photo"); Files.move(source, source.resolveSibling("photos"), StandardCopyOption.REPLACE_EXISTING);
However, this works only if the target directory is not empty. Otherwise, it throws java.nio.file.DirectoryNotEmptyException .
4. Move File/Directory Example with Files.move() method
The following example illustrates how to move a file from the current directory to another (keeping the same file name) and replace the existing file:
Path source = Paths.get("CoverPhoto.png"); Path newdir = Paths.get("D:/Photo"); Files.move(source, newdir.resolve(source.getFileName()), StandardCopyOption.REPLACE_EXISTING);
Path source = Paths.get("test"); Path newdir = Paths.get("D:/Photo"); Files.move(source, newdir.resolve(source.getFileName()));
NOTE: You can move only empty directory and replace existing directory if it is also empty. In either a directory is not empty, a DirectoryNotEmptyException is thrown.
API References:
Related File IO Tutorials:
Other Java File IO Tutorials:
- How to Read and Write Text File in Java
- How to Read and Write Binary Files in Java
- Java IO — Common File and Directory Operations Examples
- Java Serialization Basic Example
- Understanding Java Externalization with Examples
- How to execute Operating System Commands in Java
- 3 ways for reading user’s input from console in Java
- File change notification example with Watch Service API
- Java Scanner Tutorial and Code Examples
- How to compress files in ZIP format in Java
- How to extract ZIP file in Java
About the Author:
Nam Ha Minh is certified Java programmer (SCJP and SCWCD). He started programming with Java in the time of Java 1.4 and has been falling in love with Java since then. Make friend with him on Facebook and watch his Java videos you YouTube.
Как поменять название файла java
Класс File, определенный в пакете java.io, не работает напрямую с потоками. Его задачей является управление информацией о файлах и каталогах. Хотя на уровне операционной системы файлы и каталоги отличаются, но в Java они описываются одним классом File.
В зависимости от того, что должен представлять объект File — файл или каталог, мы можем использовать один из конструкторов для создания объекта:
File(String путь_к_каталогу) File(String путь_к_каталогу, String имя_файла) File(File каталог, String имя_файла)
// создаем объект File для каталога File dir1 = new File("C://SomeDir"); // создаем объекты для файлов, которые находятся в каталоге File file1 = new File("C://SomeDir", "Hello.txt"); File file2 = new File(dir1, "Hello2.txt");
Класс File имеет ряд методов, которые позволяют управлять файлами и каталогами. Рассмотрим некоторые из них:
- boolean createNewFile() : создает новый файл по пути, который передан в конструктор. В случае удачного создания возвращает true, иначе false
- boolean delete() : удаляет каталог или файл по пути, который передан в конструктор. При удачном удалении возвращает true.
- boolean exists() : проверяет, существует ли по указанному в конструкторе пути файл или каталог. И если файл или каталог существует, то возвращает true, иначе возвращает false
- String getAbsolutePath() : возвращает абсолютный путь для пути, переданного в конструктор объекта
- String getName() : возвращает краткое имя файла или каталога
- String getParent() : возвращает имя родительского каталога
- boolean isDirectory() : возвращает значение true, если по указанному пути располагается каталог
- boolean isFile() : возвращает значение true, если по указанному пути находится файл
- boolean isHidden() : возвращает значение true, если каталог или файл являются скрытыми
- long length() : возвращает размер файла в байтах
- long lastModified() : возвращает время последнего изменения файла или каталога. Значение представляет количество миллисекунд, прошедших с начала эпохи Unix
- String[] list() : возвращает массив файлов и подкаталогов, которые находятся в определенном каталоге
- File[] listFiles() : возвращает массив файлов и подкаталогов, которые находятся в определенном каталоге
- boolean mkdir() : создает новый каталог и при удачном создании возвращает значение true
- boolean renameTo(File dest) : переименовывает файл или каталог
Работа с каталогами
Если объект File представляет каталог, то его метод isDirectory() возвращает true . И поэтому мы можем получить его содержимое — вложенные подкаталоги и файлы с помощью методов list() и listFiles() . Получим все подкаталоги и файлы в определенном каталоге:
import java.io.File; public class Program < public static void main(String[] args) < // определяем объект для каталога File dir = new File("C://SomeDir"); // если объект представляет каталог if(dir.isDirectory()) < // получаем все вложенные объекты в каталоге for(File item : dir.listFiles())< if(item.isDirectory())< System.out.println(item.getName() + " \t folder"); >else < System.out.println(item.getName() + "\t file"); >> > > >
Теперь выполним еще ряд операций с каталогами, как удаление, переименование и создание:
import java.io.File; public class Program < public static void main(String[] args) < // определяем объект для каталога File dir = new File("C://SomeDir//NewDir"); boolean created = dir.mkdir(); if(created) System.out.println("Folder has been created"); // переименуем каталог File newDir = new File("C://SomeDir//NewDirRenamed"); dir.renameTo(newDir); // удалим каталог boolean deleted = newDir.delete(); if(deleted) System.out.println("Folder has been deleted"); >>
Работа с файлами
Работа с файлами аналогична работе с каталога. Например, получим данные по одному из файлов и создадим еще один файл:
import java.io.File; import java.io.IOException; public class Program < public static void main(String[] args) < // определяем объект для каталога File myFile = new File("C://SomeDir//notes.txt"); System.out.println("File name: " + myFile.getName()); System.out.println("Parent folder: " + myFile.getParent()); if(myFile.exists()) System.out.println("File exists"); else System.out.println("File not found"); System.out.println("File size: " + myFile.length()); if(myFile.canRead()) System.out.println("File can be read"); else System.out.println("File can not be read"); if(myFile.canWrite()) System.out.println("File can be written"); else System.out.println("File can not be written"); // создадим новый файл File newFile = new File("C://SomeDir//MyFile"); try < boolean created = newFile.createNewFile(); if(created) System.out.println("File has been created"); >catch(IOException ex) < System.out.println(ex.getMessage()); >> >
При создании нового файла метод createNewFile() в случае неудачи выбрасывает исключение IOException , поэтому нам надо его отлавливать, например, в блоке try. catch, как делается в примере выше.
Переименовать файл в Java
- Переименование файла с помощью метода renameTo() в Java
- Переименование файла с помощью метода move() в Java
- Переименование файла с помощью метода move() в Java
- Переименование файла с помощью библиотеки Apache commons в Java
В этом руководстве рассказывается, как переименовать файл в Java, и перечислены некоторые примеры кодов, чтобы вы могли лучше понять тему.
Переименовать файл в Java довольно просто, поскольку Java предоставляет несколько встроенных методов в пакете java.io . Мы можем использовать эти методы для переименования файла и проверки других файловых операций. В этой статье мы будем использовать метод renameTo() класса File , метод move() класса Files и общую библиотеку Apache для переименования файла.
Переименование файла с помощью метода renameTo() в Java
В этом примере мы используем класс File для получения экземпляра файла, а затем, используя метод renameTo() , мы переименовали файл. Этот метод возвращает IOException , поэтому вы должны использовать соответствующий блок try-catch для обработки исключения. Метод renameTo() возвращает логическое значение, истинное или ложное, которое может использоваться, чтобы проверить, успешно ли переименован файл.
import java.io.File; import java.io.IOException; public class SimpleTesting public static void main(String[] args) throws IOException File file1 = new File("abc.txt"); File file2 = new File("abcd.txt"); if (file2.exists()) throw new java.io.IOException("file exists"); boolean success = file1.renameTo(file2); if (success) System.out.println("File Rename successfuly"); >else System.out.println("File is not Rename"); > >
Переименование файла с помощью метода move() в Java
Этот метод — еще одно решение для переименования файла. Здесь мы использовали метод move() класса Files , который можно использовать для переименования файла. См. Пример ниже:
import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class SimpleTesting public static void main(String[] args) try Path source = Paths.get("/file-location/abc.txt"); Files.move(source, source.resolveSibling("/file-location/abcd.txt")); >catch(Exception e) System.out.println(e); > > >
Переименование файла с помощью метода move() в Java
Метод move() имеет один метод перегрузки, который принимает путь к файлу в качестве второго параметра. Итак, если вы хотите переместить файл в другое место после процесса переименования, вы можете установить этот параметр в вызове функции.
import java.io.File; import java.nio.file.Files; public class SimpleTesting public static void main(String[] args) try File newFile = new File(new File("/file-location/abc.txt").getParent(), "abcd.txt"); Files.move(new File("/file-location/abc.txt").toPath(), newFile.toPath()); >catch(Exception e) System.out.println(e); > > >
Переименование файла с помощью библиотеки Apache commons в Java
Если вы работаете с общей библиотекой Java Apache , вы можете использовать метод moveFile() класса FileUtils . Посмотрите пример программы здесь:
import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; public class SimpleTesting public static void main(String[] args) File file = new File("/file-location/abc.txt"); String newName = "abcd.txt"; String newFilePath = file.getAbsolutePath().replace(file.getName(), "") + newName; File newFile = new File(newFilePath); try FileUtils.moveFile(new File("/file-location/abc.txt"), newFile); > catch (IOException e) e.printStackTrace(); > > >