我已经构建了一个应用程序,我应该只浏览设备中的txt文件并阅读它。但我没有得到它的有效解决方案。例如,如果我们使用whatsapp,那里你可以浏览不同的不同标题下的文件,比如视频,你只会浏览视频,在图库下你只会浏览图片。但是只有文字文件才有?有什么办法吗?请建议。
答案 0 :(得分:1)
try this.
//for example your folder present in sdcard/cts.
File f = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+ "/cts");
for (File wavfile : f.listFiles(new FileExtensionFilter()))
{
String str = wavfile.getName().toString();
}
//create a class and the filter based on your need file extension
class FileExtensionFilter implements FilenameFilter {
public boolean accept(File dir, String name) {
return (name.endsWith(".txt") || name.endsWith(".TXT") );
}
}
thank you.
答案 1 :(得分:0)
我会将您的目录搜索到数组中...如果不是文本扩展名,请将“.
”后面的数组循环并查找文件扩展名。然后像照片库那样向用户显示新数组,或者您想要表示它们。
注意 - 如果您以后需要访问这些内容,则可能需要保存路径,如果用户说...需要单击并打开它们...
您可以使用此功能来搜索SD卡
File file[] = Environment.getExternalStorageDirectory().listFiles();
file[i].getAbsolutePath();
然后搜索您想要的扩展程序......
答案 2 :(得分:0)
这将为您提供所需的文件管理器。只需要一些工作。但绝对有帮助
//fill method is to get the dir
private void fill(File f)
{
File[] dirs = f.listFiles();
this.setTitle("Current Dir: " + f.getName());
List<Option> dir = new ArrayList<Option>();
List<Option> fls = new ArrayList<Option>();
try
{
for (File ff : dirs)
{
if (ff.isDirectory())
{
dir.add(new Option(ff.getName(), "Folder", ff.getAbsolutePath()));
}
else
{
String filetype[] = objOption.getName().split("\\.");
if (filetype[(filetype.length) - 1].equals("txt")) {
fls.add(new Option(ff.getName(), "File Size: "+ ff.length()+" bytes", ff.getAbsolutePath()));
}
}
}
}
catch (Exception e)
{}
Collections.sort(dir);
Collections.sort(fls);
dir.addAll(fls);
if (!f.getName().equalsIgnoreCase("sdcard"))
{
dir.add(0, new Option("..", "Parent Directory", f.getParent()));
}
adapter = new FileArrayAdapter(FileChooser.this, R.layout.dialog_file_view,dir);
lvFileList.setAdapter(adapter);
}