如何只浏览我的应用程序中的文本文件

时间:2014-03-26 05:18:08

标签: android

我已经构建了一个应用程序,我应该只浏览设备中的txt文件并阅读它。但我没有得到它的有效解决方案。例如,如果我们使用whatsapp,那里你可以浏览不同的不同标题下的文件,比如视频,你只会浏览视频,在图库下你只会浏览图片。但是只有文字文件才有?有什么办法吗?请建议。

3 个答案:

答案 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);
        }