我知道有很多问题和答案在讨论这个问题,但我没有找到合适的答案。
我在 sdcard 名称database.db中有文件。我想获取文件的路径。存储在mnt/sdcard/db/database.db的文件。我需要这样的输出mnt/sdcard/db/请帮助我任何代码或示例将不胜感激
我只有文件名,那么是否可以从中获取路径?
我知道有很多问题和答案在讨论这个问题,但我没有找到合适的答案。
我在 sdcard 名称database.db中有文件。我想获取文件的路径。存储在mnt/sdcard/db/database.db的文件。我需要这样的输出mnt/sdcard/db/请帮助我任何代码或示例将不胜感激
我只有文件名,那么是否可以从中获取路径?
再次编辑^-^:
我想我终于明白了你想要做什么:只有一个文件名作为输入,你想搜索整个 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));
现在,您有几个可能的问题: