我将开发一个应用程序,用户可以从下载目录中选择文件。现在我需要用户选择的文件的路径+名称。
DownloadManager dm = (DownlaodManager) getSystemService(DOWNLOAD_SERVICE);
通过这种方式,用户可以选择文件。现在我需要文件的absoloute路径,这是选择。但问题是,如果用户选择一个文件,该文件将被打开(这不应该发生)
你们中的任何人都可以帮助我吗?
答案 0 :(得分:9)
使用,
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
访问该文件夹,File.listFiles()
访问该目录中的单个文件。
见这个粗略的例子,
编写一个方法来浏览并列出Downloads
目录中的每个文件,
如果在Downloads
文件夹中找到目录,也列出其文件,
public void getFilesFromDir(File filesFromSD) {
File listAllFiles[] = filesFromSD.listFiles();
if (listAllFiles != null && listAllFiles.length > 0) {
for (File currentFile : listAllFiles) {
if (currentFile.isDirectory()) {
getFilesFromDir(currentFile);
} else {
if (currentFile.getName().endsWith("")) {
// File absolute path
Log.e("File path", currentFile.getAbsolutePath());
// File Name
Log.e("File path", currentFile.getName());
}
}
}
}
}
获取Downloads
目录的路径,并将其作为上述方法中的参数传递,
File downloadDir = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DOWNLOADS).getAbsolutePath());
getFilesFromDir(downloadDir);
答案 1 :(得分:1)
不要忘记您需要在清单中设置此权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
您可以改用WRITE_EXTERNAL_STORAGE。