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

Get the directory from a file path in java (android)

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

所以来自

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

你得到

"/root/sdcard/Pictures"

是的。首先构造一个File表示图片路径:

File file = new File(a);

如果您从相对路径开始:

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

然后,get the parent

String dir = file.getParent();

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

File dirAsFile = file.getParentFile();

更好的方法,使用 getParent() from File Class..

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

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

提供了以下功能
  • 前缀 - C:\
  • 路径 - dev\project\
  • 完整路径 - C:\dev\project\
  • 姓名 - file.txt
  • 基本名称 - 文件
  • 扩展名 - txt

我在 4 天后找到了解决方案,在 Android(Java):

中提供文件 class 的路径时请注意以下几点
  1. 使用内部存储路径 String path="/storage/sdcard0/myfile.txt";
  2. path="/storage/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 和 sdcard1 的路径是否相同,否则......

例如

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