jav*_*top 22 java file-io nio path java-7
我对JDK7中所有这些新的File I/O类感到困惑.
让我们说,我有一个,Path并希望重命名该文件,它代表.
如何再次Path预期时,如何指定新名称?
Path p = /* path to /home/me/file123 */;
Path name = p.getName(); /* gives me file123 */
name.moveTo(/* what now? */); /* how to rename file123 to file456? */
Run Code Online (Sandbox Code Playgroud)
注意:为什么我需要JDK7?处理符号链接!
问题是:我必须使用文件,在运行时已知名称和位置.所以,我需要的是一种安全的方法(没有特殊的副作用)来创建一个新名称-Path一些旧名称Path.
Path newName(Path oldName, String newNameString){
/* magic */
}
Run Code Online (Sandbox Code Playgroud)
Avn*_*ner 58
在JDK7中,Files.move()提供了一种简短的语法来重命名文件:
Path newName(Path oldName, String newNameString) {
return Files.move(oldName, oldName.resolveSibling(newNameString));
}
Run Code Online (Sandbox Code Playgroud)
首先,我们使用Path.resolveSibling()获取新文件名的路径, 然后我们使用Files.move()进行实际重命名.
小智 7
您有一个路径字符串,您需要创建一个Path实例.您可以使用getPath方法执行此操作或解决此问题.这是一种方式:
Path dir = oldFile.getParent();
Path fn = oldFile.getFileSystem().getPath(newNameString);
Path target = (dir == null) ? fn : dir.resolve(fn);
oldFile.moveTo(target);
Run Code Online (Sandbox Code Playgroud)
请注意,它检查父项是否为空(看起来您的解决方案不这样做).
| 归档时间: |
|
| 查看次数: |
22063 次 |
| 最近记录: |