在JavaScript Rhino中实现无修改文件复制的最简方案求助
解决方案
在Rhino环境中,你可以直接调用Java NIO的Files.copy方法完成无修改文件复制,之前失败大概率是路径转换或复制选项没处理到位。结合你已有的目录创建逻辑,最简实现如下:
// 定义源文件与目标文件路径 const source = new java.io.File("/pathA/filename"); const destination = new java.io.File("/pathB/filename"); // 确保目标文件的父目录存在(复用你的目录创建逻辑) destination.getParentFile().mkdirs(); // 调用Java NIO完成复制,指定覆盖已存在文件的选项 const Files = java.nio.file.Files; const StandardCopyOption = java.nio.file.StandardCopyOption; Files.copy(source.toPath(), destination.toPath(), StandardCopyOption.REPLACE_EXISTING);
关键注意点
- 必须将
java.io.File对象通过toPath()转换为NIO的Path对象,这是调用Files.copy的前提 - 添加
StandardCopyOption.REPLACE_EXISTING选项,避免目标文件已存在时抛出异常 - 无需手动创建目标文件,
Files.copy会自动创建(但父目录仍需提前创建)
如果你的JRE版本低于Java 7(不支持NIO.2),可以改用java.io的流实现,但既然你想避开流,优先确保环境支持Java 7+。
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

