【问题标题】:Android Programming: Where To Start For Creating A Simple File Browser?Android 编程:从哪里开始创建一个简单的文件浏览器?
【发布时间】:2011-05-05 18:21:41
【问题描述】:

我想做一个文件浏览器,它可以做两件事: 1) 允许用户浏览并选择目录 2)允许用户浏览其sdcard上的所有文件

我一直在寻找教程,但似乎找不到任何教程? 有人可以通过解释我的代码需要如何做才能拥有一个简单的文件浏览器或向我提供教程/源代码的链接来帮助我吗?

请,谢谢!

【问题讨论】:

    标签: android file browser


    【解决方案1】:

    如果您实际上对学习编写自己的代码更感兴趣,我建议您仔细阅读File 类文档。这就是你要做大部分工作的地方。

    对于 Android 的 SD 卡/其他外部存储,您需要先检查以确保外部存储已安装且可用,然后再尝试使用 Environment 类进行读取:

    String extState = Environment.getExternalStorageState();
    //you may also want to add (...|| Environment.MEDIA_MOUNTED_READ_ONLY)
    //if you are only interested in reading the filesystem
    if(!extState.equals(Environment.MEDIA_MOUNTED)) {
        //handle error here
    }
    else {
        //do your file work here
    }
    

    一旦您确定了外部存储的正确状态,一个简单的开始方法是使用 File 的 listFiles() 方法,如下所示:

    //there is also getRootDirectory(), getDataDirectory(), etc. in the docs
    File sd = Environment.getExternalStorageDirectory();
    //This will return an array with all the Files (directories and files)
    //in the external storage folder
    File[] sdDirList = sd.listFiles();
    

    然后您可以开始使用 FileFilters 来缩小结果范围:

    FileFilter filterDirectoriesOnly = new FileFilter() {
        public boolean accept(File file) {
            return file.isDirectory();
        }
    };
    File[] sdDirectories = sd.listFiles(filterDirectoriesOnly);
    

    从那里开始,只需通读文档以找到您希望用它做的事情的类型,然后您就可以将它们绑定到列表适配器等中。

    希望这会有所帮助!

    【讨论】:

    • 哦,顺便说一句,我有一个工作文件保存和文件读取脚本,我已经测试过并且它可以工作,我希望我正在创建的文件浏览器只返回你的文件的 Uri点击/您选择的目录。
    • 在这种情况下,只需添加一个返回相应文件路径的点击处理程序(例如sdDirectories[1].getAbsolutePath())。
    • 非常感谢,我马上就要开始制作了!如果我遇到麻烦,我向你寻求帮助可以,还是你宁愿不? :)
    • 当然,不打扰我。当然,我不相信这里有任何形式的私人消息,但如果您只想发布问题,欢迎您通过链接对此发表评论。
    【解决方案2】:

    这是一个较晚的答案,但我最近致力于创建一个 android 文件资源管理器。 https://github.com/mburman/Android-File-Explore

    它真的很简单。本质上,它只是您需要集成到应用程序中的 1 个文件。

    【讨论】:

    • 感谢您的帮助,但我已经在 kcoppock 的代码上构建并在不久前完成了它,但值得称赞的是,它看起来像一个不错的应用程序 :)
    • 谢谢你,它工作完美!
    • 很棒的人。节省了一天。只是需要一些改进,一切都完成了。
    【解决方案3】:

    看看OI File Manager,它是一个开源的Android 文件管理器。可以获取源代码here

    【讨论】:

    • 我实际上建议使用 OI 文件管理器,而不是复制它。在我的应用程序中,我只添加了一个按钮,用于启动 OI 文件管理器以选择文件,如果尚未安装,则提供从市场下载。
    • 这就是我目前使用 ES 文件资源管理器所做的事情,我真的有兴趣制作自己的。
    • 您如何确保您的用户安装了 OI 文件管理器?复制源代码可确保将其打包到您的 .apk 中...只是广播意图就是在祈祷。
    • @VygintasB,修复了两个链接。
    • @RyanBerger 谢谢
    猜你喜欢
    • 1970-01-01
    • 2013-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    相关资源
    最近更新 更多