如何在Java中分割文件系统路径?

如何在Java中分割文件系统路径?,java,string,path,Java,String,Path,如果我在一个类中有一个字符串变量 MainActivity.selectedFilePath 它有这样一个值 /sdcard/images/mr.32.png 我想在某个地方只打印到该文件夹的路径,而不打印文件名 /sdcard/images/ 新建文件(MainActivity.selectedFilePath).getParent().getAbsolutePath()使用该路径创建文件对象,然后从中使用getPath方法。您可以使用字符串.lastIndexOf(int-ch)提供字

如果我在一个类中有一个字符串变量

MainActivity.selectedFilePath
它有这样一个值

/sdcard/images/mr.32.png
我想在某个地方只打印到该文件夹的路径,而不打印文件名

/sdcard/images/

新建文件(MainActivity.selectedFilePath).getParent().getAbsolutePath()

使用该路径创建文件对象,然后从中使用getPath方法。

您可以使用
字符串.lastIndexOf(int-ch)提供字符ch的最后一次出现,您可以执行以下操作:

File theFile = new File("/sdcard/images/mr.32.png");
String parent = theFile.getParent();
或(不太推荐)

查看Apache Commons IO库,尤其是

试试这个:

File File=新文件(“路径”)

parentPath=file.getParent()


parentDir=file.getParentFile()

以下是解决方案-

 String selectedFilePath= "/sdcard/images/mr.32.png";
 selectedFilePath=selectedFilePath.substring(0,selectedFilePath.lastIndexOf("/"));
System.out.println(selectedFilePath);
  • 档案
如果文件确实存在于框中,则可以将字符串包装在文件对象中并调用

  • String.split()
如果文件不存在,可以使用String.split()函数以“/”作为分隔符拆分字符串。然后可以删除数组中的最后一个字符串并重建它。但这种方法相当肮脏

  • 正则表达式
可以使用正则表达式将最后一个/后面的部分替换为“.”

final String dir=System.getProperty(“user.dir”);
字符串[]数组=dir.split(“[\\/]”,-1);
字符串arrval=“”;
对于(inti=0;iJava11:

String folderOnly = Path.of(MainActivity.selectedFilePath).getParent().toString();

您可以使用正则表达式。例如:由于Java 11,有一种简单的方法可以做到这一点:文件不需要存在于文件系统中就可以调用getParent()
    String string = "/sdcard/images/mr.32.png";
    int lastSlash = string.lastIndexOf("/");
    String result = string.substring(0, lastSlash);
    System.out.println(result);
 String selectedFilePath= "/sdcard/images/mr.32.png";
 selectedFilePath=selectedFilePath.substring(0,selectedFilePath.lastIndexOf("/"));
System.out.println(selectedFilePath);
final String dir = System.getProperty("user.dir");
String[] array = dir.split("[\\\\/]",-1) ;
String arrval="";

   for (int i=0 ;i<array.length;i++)
      {
        arrval=arrval+array[i];

      }
   System.out.println(arrval);
String folderOnly = Path.of(MainActivity.selectedFilePath).getParent().toString();