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

Posted

技术标签:

【中文标题】从java(android)中的文件路径获取目录【英文标题】:Get the directory from a file path in java (android) 【发布时间】:2015-04-20 02:02:03 【问题描述】:

有没有获取文件路径的目录部分的功能?

所以从

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

你得到

"/root/sdcard/Pictures"

【问题讨论】:

【参考方案1】:

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

File file = new File(a);

如果您从相对路径开始:

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

那么,get the parent:

String dir = file.getParent();

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

File dirAsFile = file.getParentFile();

【讨论】:

如果您使用像File f = new File("file.txt"); 这样的相对路径,请注意f.getParent() 将返回null,而不是父级 如何从文件名中提取到“/root/sdcard/”或“/root/internal/”的路径? @hexafraction,刚刚发布了一个问题***.com/questions/38381871/…【参考方案2】:

更好的方法,使用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

【讨论】:

【参考方案3】:

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

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

【讨论】:

【参考方案4】:

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

    内部存储使用路径 String path="/storage/sdcard0/myfile.txt"; path="/storage/sdcard1/myfile.txt";

    在 Manifest 文件中提及权限。

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

    首先检查文件长度以进行确认。 检查 ES 文件资源管理器中关于 sdcard0 和 sdcard1 的路径是否相同......

例如

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

【讨论】:

以上是关于从java(android)中的文件路径获取目录的主要内容,如果未能解决你的问题,请参考以下文章

Qt 和 Android - 从图库中的图像获取路径

如何从我的 Android 应用程序中的所有目录中获取所有 pdf 文件

从android中的文件路径获取内容uri

如何使用java从linux环境中获取tomcat中当前目录的相对路径

如何从包含 android 中的绝对文件路径的字符串中获取文件夹名称?

android怎么从drawable目录下动态获取图片