使用flutter开发一个U盘文件管理APP,只解析图片文件

本文介绍了如何使用Flutter开发一个U盘文件管理应用程序,专注于读取并展示U盘中的图片文件。通过分析Android设备上的U盘路径,编写文件遍历工具类,实现了目录的层级浏览和图片文件的解析显示。同时,提供了权限设置指南和关键代码示例。
摘要由CSDN通过智能技术生成

        今天教大家用flutter撸一个U盘文件管理APP,需求是这样的:

        当我在Android设备上插入U盘后,我能在APP中打开U盘的文件目录,并且能进入对应目录的下一级目录,如果下级目录下有图片文件,我就对这个图片文件进行解析,并展示出来。

        需求了解后,先上个效果图:

                                                    

          效果图看完后,我讲解一下实现思路,首先我们先通过As观察一下,U盘插入设备后,U盘的路径在哪里?请看下图:

  

按照上图的指示,我们知道了U盘具体的路径在哪里了,这个路径很重要,因为U盘的名字是不定的,但是基本上路径不会变化,那么我们就有了一个思路——如果我每次打开应用的时候,我先去遍历Storage文件目录,如果除了emulated和self文件外,还有别的文件,是不是意味着这个别的文件就是我们的U盘文件?然后我们按照这个思路,写了一个通过路径去遍历文件目录的工具类,如下:


import 'dart:io';

import 'package:flutter/cupertino.dart';

class UsbFileManagerUtils{

  //读取SDK中图片、视频文件的路径(异步读取)
  static getDirectoryPath(rootName) async {
    // print('读取SD卡');
    //'sdcard/Android/data'没有权限读取 排除它
    List<String> list = [];
    try {
      var systemTempDir = Directory(rootName);
      Stream<FileSystemEntity> dirsFileList =
      systemTempDir.list(recursive: false, followLinks: false);

      //一级目录,排除sdcard/Android
      await for (FileSystemEntity entity in dirsFileList) {
        final path = entity.path;
        list.add(path);
      }
    } catch (e) {
      debugPrint('e===$e');
      return list;
    }
    return list;
  }

}

记得添加对应的权限,为了方便大家不会出错,大家可以跟着我的指示图去操作

这些添加好了后,我们就可以写具体实现逻辑了,首先是首页,就一个按钮,点击后进入我们的文件管理系统界面,代码如下:

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:homjay_test/UsbFil
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值