java - 如何在Windows中的同一目录中复制给定不同名称的文件

标签 java java-8

我一直在尝试复制一个文件,但在同一个 windows 目录中更改了它的名称,但我没有成功。

我不能只复制同目录下的文件,因为windows规定同目录下的两个文件不能重名。

我不允许复制到另一个目录然后重命名,然后再将它移回同一目录。

而且我在 File.class 中没有看到任何有用的实现。

尝试过类似的方法,但没有成功:

File file = new File(filePath);
File copiedFile = new File(filePath);
//then rename the copiedFile and then try to copy it
Files.copy(file, copiedFile);

最佳答案

最初的尝试是使用 Path视情况而定:

Path file = Paths.get(filePath);
String name = file.getFileName().toString();
String copiedName = name.replaceFirst("(\\.[^\\.]*)?$", "-copy$0");
Path copiedFile = file.resolveSibling(copiedName);
try {
    Files.copy(file, copiedFile);
} catch (IOException ex) {
    Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}

关于java - 如何在Windows中的同一目录中复制给定不同名称的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55163968/

相关文章:

java - @AfterReturning 方面在切入点方法的同一事务中执行?

java - 无法从 sqlite 查询中获取选择列 3

JAVA SPRING BOOT - 在运行时交换环境变量的内容

java - 在Linux中,如何用外部jar文件执行Java jar文件?

java - 获取 lambda 类的列表

java - 从具有附加元素的给定列表派生列表

java - Rox 教程中的 Java NIOServer 真的安全吗?

java - 如何将 Java 流转换为滑动窗口?

java - 编写 Java 函数和使用者

java - 这个不必要的方法引用背后的想法是什么?