GithubHelp home page GithubHelp logo

zfilemanager's Introduction

Travis Travis Travis

特点

1. 默认支持 音频,视频,图片,txt,zip,word,excel,ppt,pdf 9种文件

2. 支持音频、视频播放,图片查看,zip解压,文件重命名、复制、移动、删除、查看详情

3. 支持查看指定文件类型,支持文件类型拓展,支持嵌套在Fragment中使用

4. 支持多选,数量、文件大小限制、实时排序、指定文件路径访问、文件夹角标

5. 支持QQ、微信文件选择 && 支持自定义获取QQ、微信文件

6. 支持 Android/data、Android/obb 数据获取,同时支持自定义

7. 不含任何三方框架,极高的定制化,支持Android 10/11/12/+++、DSL

部分截图(下载demo直接体验

基本使用

温馨提示: targetSdkVersion >= 29 清单文件中加上 android:requestLegacyExternalStorage="true"

Step 0. 添加依赖

    // Android 10 及以上版本  请查看最新版本

Step 1. 实现ZFileImageListener,并在调用前配置

class MyFileImageListener : ZFileImageListener() {

    override fun loadImage(imageView: ImageView, file: File) {
        // 以Glide为例
        Glide.with(imageView.context)
            .load(file)
            .apply(RequestOptions().apply {
                placeholder(R.drawable.ic_zfile_other)
                error(R.drawable.ic_zfile_other)
            })
            .into(imageView)
    }
}

// 在调用前配置
getZFileHelp().init(MyFileImageListener())

Step 2. 在Activity或Fragment中使用

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        main_defaultMangerBtn.setOnClickListener {
            // DSL 方式 
            zfile { 
                result {
                    setFileListData(this)
                }
            }
            // 普通 方式 
            getZFileHelp()
                .result(this) {
                     setFileListData(this)
                }
        }
    }
    
    private fun setFileListData(fileList: MutableList<ZFileBean>?) {
        val sb = StringBuilder()
        fileList?.forEach {
            sb.append(it).append("\n\n")
        }
        main_resultTxt.text = sb.toString()
    }

}

更多使用方式点击查看

目前本库趋于稳定, ^_^ 如果觉得可以 star 一下哦!

Static Badge Static Badge

Travis Travis Travis

zfilemanager's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

zfilemanager's Issues

文件大小限制提示

2022-07-15 17:34:35.940 17881-17881/com.zp.zfile_manager E/-----: selete size:140.7735471725464
2022-07-15 17:34:35.941 17881-17881/com.zp.zfile_manager E/-----: config.maxSize:15
2022-07-15 17:34:35.941 17881-17881/com.zp.zfile_manager E/-----: config.maxSizeStr:您只能选取小于10M的文件

设置了最大为15M,超过15M后提示语仍然为默认的10M

ZFileListAdapter.java 175行

我只想选择文件

看了半天文档,和试了各种命令。我还是没找到怎么只选文件。

微信不能获取图片和视频等等

在这里感谢你的开源的库,经过测试在微信保存视频到本地后的地址为/storage/emulated/0/Download/WeiXin/或者/storage/emulated/0/Pictures/WeiXin/这两个路径都有可能出现。在增加这两个路径显示出了保存的视频或者图片文档,而且检查了你的代码ZFileUtil工具类中的getQWFileData写法有问题,建议优化成为这个样子,就可以增加多个QQ/微信的路径地址
fun getQWFileData(type: Int, filePathArray: MutableList<String>, filterArray: Array<String>): MutableList<ZFileBean> { val list = ArrayList<ZFileBean>() val listFiles= mutableListOf<File>() if (filePathArray.isNullOrEmpty().not()){ if (filePathArray.isNotEmpty()){ filePathArray.forEach { val toFile = it.toFile() if (toFile.exists()){ toFile.listFiles(ZFileQWFilter(filterArray,type==ZFILE_QW_OTHER))?.run { listFiles.addAll(this.toList()) } } } } } listFiles.forEach { if (!it.isHidden) { val bean = ZFileBean( it.name, it.isFile, it.path, ZFileOtherUtil.getFormatFileDate(it.lastModified()), it.lastModified().toString(), getFileSize(it.length()), it.length() ) list.add(bean) } } if (!list.isNullOrEmpty()) { list.sortByDescending { it.originalDate } } return list }

请教一个问题

如果我想自定义文件操作,想解压,我长按的时候并没有看到有界面的提示呢?

I want to select directories

I need a fuction:
select a directory,and return the information of the files and directories those included by the directory.

是否可以开放 文件夹 item点击事件

我自己有个需求,就是在点击文件夹的时候 做一些事,自己修改源码ZFileListFragment如下

itemClick = { v, position, item ->
                if (item.isFile) {
                    ...
                } else {
                    ZFileLog.i("进入 ${item.filePath}")
                    ...
                    foldItemClick?.invoke(item.filePath)
                }
            }

请问后续版本更新会加入吗?

PS:
我好像有这个需求,请问啥时候zhiboduodiao, ヾ(๑╹◡╹)ノ"

        /** 标题居右 */
        @Deprecated("肯定没人有这种BT需求,有的话我zhiboduodiao")
        const val TITLE_RIGHT = 2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.