我的问题是::
从字符串"/usr/folder1/folder2/filename.ext"中,我需要提取出仅用于显示的文件名(仅为filename.ext)。
- 我的问题是如何做到这一点?在“ /”上拆分并取最后一个元素是一种方法,但对我来说不太好。
我查看了java.net中的URI和URL接口,但没有找到有用的信息。
此外,在某些情况下,我的文件路径可能具有逗号、空格等(Windows文件夹)。因此,在提供任何想法时,请将此考虑在内。
我的问题是::
从字符串"/usr/folder1/folder2/filename.ext"中,我需要提取出仅用于显示的文件名(仅为filename.ext)。
我查看了java.net中的URI和URL接口,但没有找到有用的信息。
此外,在某些情况下,我的文件路径可能具有逗号、空格等(Windows文件夹)。因此,在提供任何想法时,请将此考虑在内。
您可以尝试像这样做:
File file = new File("/usr/folder1/folder2/filename.ext");
System.out.println(file.getName());
我不确定如果文件不存在,这是否有效,但我刚尝试了一下,看起来可以正常工作。
File
构造函数的参数是一个Uri
,但它被拒绝为无效参数。将Uri转换为字符串很简单:File file = new File(mImageUri.toString());
- Ash Ryan ArnwineCommonsIO 提供了解决这个问题的方案:FilenameUtils.getName()
,返回文件名+扩展名。
String filename = FilenameUtils.getName("/usr/folder1/folder2/filename.ext");
System.out.println(filename); // Returns "filename.ext"