java - Java,获取文件的完整路径并删除文件名
问题描述
我正在尝试获取文件的目录路径。我遇到的问题是获取目录的最后一个\
或/
。由于此代码应该适用于所有操作系统,因此我似乎找不到任何解决方案。任何帮助表示赞赏。
到目前为止我的代码:
System.out.print("Enter dir: ");
String path = kb.nextLine();
File pathes = new File(path);
String path2 = pathes.getParent();
path = path.substring(0, path.lastIndexOf("\\")+1);
System.out.println("PATH: " + path);
System.out.println("PATH2: "+path2);
我的输出是:
PATH: C:\Users\User\Desktop\test\
PATH2: C:\Users\User\Desktop\test
这只是测试代码,而不是我正在处理的真实代码。
编辑 我想要得到的是
C:\Users\User\Desktop\test\
从
C:\Users\User\Desktop\test\test.txt
解决方案
要获取父目录的绝对路径,您可以执行以下操作:
File f = new File("C:\\Users\\User\\Desktop\\test\\test.txt");
String path = f.getParentFile().getAbsolutePath();
System.out.println(path);
输出:
C:\Users\User\Desktop\test
如果你真的想要斜杠,那么你可以追加File.separator
:
File f = new File("C:\\Users\\User\\Desktop\\test\\test.txt ");
String path = f.getParentFile().getAbsolutePath() + File.separator;
System.out.println(path);
输出:
C:\Users\User\Desktop\test\
推荐阅读
- c - 在 gdb 中打印十六进制值时打印前面的 0
- python - 从熊猫数据框中进行多线绘图时,绘图没有实线
- android - 如何通过 JsonObjectRequest 向谷歌发送 API 请求?
- javascript - 需要模块的电子需要模块?
- c# - 比较数组和 XElement 的所有元素
- angular - 角度名称路由器插座延迟加载错误:无法匹配
- c# - 是否可以对列表进行归零?
- javafx - 我该怎么做才能删除此对话框角上的白色标记?
- selenium - 如何在 Selenium 黄瓜框架中通过测试用例的范围报告中添加屏幕截图
- maven - Maven surefire 插件在 java 11 上使 jvm 崩溃(通过直接写入分叉 JVM 1 中的本机流来损坏 STDOUT)