Вит*_*вич 16 java regex windows file-io
我有一个完整的文件路径,我想获取文件名.
我使用以下说明:
String[] splittedFileName = fileName.split(System.getProperty("file.separator"));
String simpleFileName = splittedFileName[splittedFileName.length-1];
Run Code Online (Sandbox Code Playgroud)
但是在Windows上它给出了:
java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
\
^
Run Code Online (Sandbox Code Playgroud)
我可以避免这种例外吗?有一个更好的方法吗?
Jon*_*eet 40
问题是\必须进行转义才能将其用作正则表达式中的反斜杠.您应该使用不使用正则表达式的拆分API,或者Pattern.quote先使用:
// Alternative: use Pattern.quote(File.separator)
String pattern = Pattern.quote(System.getProperty("file.separator"));
String[] splittedFileName = fileName.split(pattern);
Run Code Online (Sandbox Code Playgroud)
或者甚至更好,使用FileAPI:
File file = new File(fileName);
String simpleFileName = file.getName();
Run Code Online (Sandbox Code Playgroud)
当您编写文件名时,您应该使用System.getProperty("file.separator").
读取文件名时,可能有正斜杠或反斜杠作为文件分隔符.
您可能想尝试以下操作:
fileName = fileName.replace("\\", "/");
String[] splittedFileName = fileName.split("/"));
String simpleFileName = splittedFileName[splittedFileName.length-1];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33309 次 |
| 最近记录: |