Pau*_*lor 5 java filesystems nio nio2
使用 Java 1.6 文件路径可以由用户输入,然后我应用各种正则表达式来删除对平台无效的字符(例如 '?' 在 Windows 上无效),并检查路径长度以确保我们最终得到一个有效的文件路径在尝试创建文件路径之前为操作系统。
但是有两个问题:
所以我希望在 Java 7 中使用 NIO2 会有更好的方法,但还没有找到解决方案,有吗?
根据您的预期结果(更正的字符串?无效的字符位置?异常?),这应该让您了解可以做什么:
import java.io.File;
import java.nio.file.InvalidPathException;
public class Test {
public static final void main(final String[] args) {
final String current = new File(".").toPath().toAbsolutePath().normalize().toFile().toString();
Test.correctPath(current);
Test.correctPath(current + "aValidExpression");
Test.correctPath(current + "aValidExpression?;:-&é");
Test.correctPath(current + "aValidExpr//ession?;:-&é");
Test.correctPath(current + "aValidExpre\\ssion?;:-&é");
}
public static final String correctPath(final String path) {
try {
final String returnValue = new File(path).toPath().toAbsolutePath().normalize().toFile().toString();
System.out.println(returnValue);
return returnValue;
} catch (final InvalidPathException e) {
System.err.println(e.getMessage());
final int errorIndex = e.getIndex();
final String newPath = path.substring(0, errorIndex - 1) + path.substring(errorIndex + 1);
return Test.correctPath(newPath);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望它有帮助。
| 归档时间: |
|
| 查看次数: |
4179 次 |
| 最近记录: |