- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 java.io.File
重构一些遗留代码,以使用 java.nio.file.Path
代替。
我对 Path 对绝对文件路径有更好的支持这一事实感到震惊,因为我收到的许多值都有一个前导斜杠 (/
),而它们应该表示相对路径。这样字符串连接更容易,但我试图摆脱 String
/File
来表示文件路径。
旧的行为是 new File(parent, child)
返回一个新的 File
表示
/
开头。新的行为是 parent.resolve(child)
返回一个新的 Path
代表任一
/
开头)我认为新方法可以使代码更简洁,但是在重构遗留应用程序时,它可能会引入微妙的错误。
使用Path
时恢复旧的(文件
)行为的最佳/最干净的方法是什么?
import java.io.File;
import java.nio.file.Path;
import java.nio.file.Paths;
class Main {
public static void main(String[] args) {
file();
path();
}
public static void file(){
File root = new File("/root");
File relative = new File(root, "relative");
File absolute = new File(root, "/absolute");
System.out.println("File:");
System.out.println(relative.getAbsolutePath()); // prints "/root/relative"
System.out.println(absolute.getAbsolutePath()); // prints "/root/absolute"
System.out.println();
}
public static void path(){
Path root = Paths.get("/root");
Path relative = root.resolve("relative");
Path absolute = root.resolve("/absolute");
System.out.println("Path:");
System.out.println(relative.toAbsolutePath()); // prints "/root/relative"
System.out.println(absolute.toAbsolutePath()); // prints "/absolute" but should print "/root/absolute"
System.out.println();
}
}
<小时/>
基本上,我想要的是一种采用父路径和子字符串的方法,该方法返回父+子路径,无论子路径是否有前导 /
。
像这样的东西,但没有依赖于我知道配置将使用 /
(而不是 \
)的字符串操作:
private static Path resolveSafely(Path parent, String child) {
child = child.startsWith("/")
? child.substring(1)
: child;
parent.resolve(child);
}
最佳答案
我能找到的最好方法是:
Path root = Paths.get("/root");
Path relative = root.resolve("relative");
Path absolute = Paths.get(root.toString(), "/absolute");
System.out.println("Path:");
System.out.println(relative.toAbsolutePath()); // prints "/root/relative"
System.out.println(absolute.toAbsolutePath()); // prints "/root/absolute"
System.out.println();
希望这就是您所需要的。
编辑:自 Java 11 起,Path.of()
可用,并且是获取 Path 对象的推荐方法,而不是 Paths.get()
。 Check javadoc其中还指出 Paths
类可能在未来版本中被弃用。
关于java - 解析 java.nio.files.Path 时忽略前导斜杠的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60565892/
我有一个右下角倾斜的元素,我必须在其上放置一个盒子阴影。有时倾斜的 Angular 被徽章覆盖 - 我的问题不适用,如果是这样的话: 这是信息框及其边 Angular 的 (s)css 部分(还有更多
是否可以在纯 html/css 中创建类似下面的内容? 我想做这个响应式和全 (100%) 宽度(最大左 Angular 100 像素,右边最小 50 像素,类似的东西)。 最佳答案 您可以通过转换(
如何在 fabricjs 文本中为文本提供渐变或斜 Angular 效果?? http://fabricjs.com/fabric-intro-part-2/ 这里给出了形状和所有示例,我将其与文本绑
我用过: http://apps.eky.hk/css-triangle-generator/ 为彼此对 Angular 放置的两个不等边三 Angular 形生成 css: 左下三 Angular
我是一名优秀的程序员,十分优秀!