gpt4 book ai didi

java - Java中有没有办法在不尝试创建文件的情况下确定路径是否有效?

转载 作者:IT老高 更新时间:2023-10-28 13:52:51 28 4
gpt4 key购买 nike

我需要确定用户提供的字符串是否是有效的文件路径(即 createNewFile() 是否会成功或抛出异常),但我不想让文件系统膨胀包含无用的文件,仅为验证目的而创建。

有没有办法在不尝试创建文件的情况下确定我拥有的字符串是否是有效的文件路径?

我知道“有效文件路径”的定义因操作系统而异,但我想知道是否有任何快速的方法可以接受 C:/foo/foo 并拒绝 banana

一种可能的方法是尝试创建文件并在创建成功后最终将其删除,但我希望有一种更优雅的方式来实现相同的结果。

最佳答案

Java 7 中引入的路径类添加了新的替代方案,如下所示:

/**
* <pre>
* Checks if a string is a valid path.
* Null safe.
*
* Calling examples:
* isValidPath("c:/test"); //returns true
* isValidPath("c:/te:t"); //returns false
* isValidPath("c:/te?t"); //returns false
* isValidPath("c/te*t"); //returns false
* isValidPath("good.txt"); //returns true
* isValidPath("not|good.txt"); //returns false
* isValidPath("not:good.txt"); //returns false
* </pre>
*/
public static boolean isValidPath(String path) {
try {
Paths.get(path);
} catch (InvalidPathException | NullPointerException ex) {
return false;
}
return true;
}

编辑:
注意 Ferrybig 的 comment : "Linux 上文件名中唯一不允许使用的字符是 NUL 字符,这在 Linux 下确实有效。"

关于java - Java中有没有办法在不尝试创建文件的情况下确定路径是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/468789/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com