我知道有很多问题和答案在讨论这个问题,但我找不到合适的答案。
我有sdcard名称 database.db 的文件。我想得到文件的路径。文件存储在 mnt / sdcard / db / database.db 。我需要这样的输出 mnt / sdcard / db / 请帮助我任何代码或示例将不胜感激
我只有文件名,那么是否可以从中获取路径?
答案 0 :(得分:0)
再次编辑^ - ^:
我想我终于明白了你想要做什么:只有一个文件名作为输入,你想要搜索整个SD卡,如果它存在,你想获得目录的路径它在。
请记住,如果用户的SD卡包含大量文件夹和文件,则对文件的完整搜索可能会很慢。
这是一个搜索文件的简单功能:
public static void findFilePath(File dir, String filename, List<String> result) {
// get all files in dir
File[] files = dir.listFiles();
for( File f : files ){
if( f.isDirectory() ){
// Recurse
findFilePath(dir, filename, result);
}
else{
if( f.getName().equals("filename") ){
String absPath = f.getAbsolutePath();
result.add(absPath.substring(0, absPath.lastIndexOf(File.separator)));
}
}
}
}
以下是用法:
List<String> result = new ArrayList<String>();
findFilePath( Environment.getExternalStorageDirectory(), "database.db", result);
System.out.println(result.get(0));
现在,您有几个可能的问题: