我目前正在编写基于API的Gui,我希望在其中显示完整的文件名... 文件名通常太长,所以我想修剪这个文件名,只留下根据需要的文件夹。 例如:
C:\用户\ RoiEX \ someFolder \ SomeOtherFolder \ someFile.someExtension
应修剪为
C:\ ... \ someOtherFolder \ someFile.someExtension
我有我的变量fileName,它是通过调用file.getAbsolutePath()
生成的。
我有一个方法,我们称之为tooLarge(fileName)
我会这样开始:
String fileName = file.getAbsolutePath();
while(tooLarge(fileName)){
fileName = trimPath(fileName);
}
render(fileName);
我应该在trimPath()
内做什么?
感谢任何帮助
答案 0 :(得分:1)
如果你知道你的PATH到那个目录,并且你正在转换为相对路径,那么你可以这样做。
final String PATH = "C:\\Users\\RoiEX\\someFolder";
String path = filename.replaceFirst(PATH, "C\\..\\");
答案 1 :(得分:1)
使用replaceAll()
的正确正则表达式适合您:
public static void main(String[] args) {
String s = "C:\\asas\\Users\\RoiEX\\someFolder\\SomeOtherFolder\\someFile.someExtension";
System.out.println(s.replaceAll("(\\w+:\\\\).*?(\\\\\\w+\\\\\\w+.\\w+)$", "$1...$2"));
}
O / P:
C:\...\SomeOtherFolder\someFile.someExtension
上述正则表达式选择最后一个起始目录和带文件名的最后一个目录。