从java(android)中的文件路径获取目录

时间:2015-02-18 21:29:13

标签: java android path directory

是否有一个函数来获取文件路径的目录部分?

所以来自

String a="/root/sdcard/Pictures/img0001.jpg";

你得到了

"/root/sdcard/Pictures"

4 个答案:

答案 0 :(得分:44)

是。首先,构造一个代表图像路径的File

File file = new File(a);

如果您从相对路径开始:

file = new File(file.getAbsolutePath());

然后,get the parent

String dir = file.getParent();

或者,如果您希望将目录作为File对象,

File dirAsFile = file.getParentFile();

答案 1 :(得分:10)

更好的方法是,使用getParent()类中的File ..

String a="/root/sdcard/Pictures/img0001.jpg"; // A valid file path 
File file = new File(a); 
String getDirectoryPath = file.getParent(); // Only return path if physical file exist else return null

http://developer.android.com/reference/java/io/File.html#getParent%28%29

答案 2 :(得分:3)

您也可以使用FilenameUtils from Apache。它为示例C提供了至少以下功能:\ dev \ project \ file.txt:

  • 前缀 - C:\
  • 路径 - dev \ project \
  • 完整路径 - C:\ dev \ project \
  • 名称 - file.txt
  • 基本名称 - 文件
  • 扩展名 - txt

答案 3 :(得分:0)

我在4天后得到了解决方案,请注意以下几点,同时给出Android(Java)中File类的路径:

  1. 使用内部存储路径String path =“/ storage / sdcard0 / myfile.txt”;
  2. 路径= “/存储/ sdcard1 / myfile.txt的”;
  3. 在清单文件中提及权限。

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

  4. 首先检查文件长度以进行确认。
  5. 检查ES文件资源管理器中有关sdcard0&amp;的路径。 sdcard1也是这样......或者......
  6. e.g。

    File file=new File(path);
    long=file.length();//in Bytes