文件的查询和删除

1.png
2.png

文件查询的主界面:

public class FilemgrActivity extends BaseActivity implements View.OnClickListener {
private TextView mSize;
private TextView mAll;
private TextView mWord;
private TextView mVoide;
private TextView mAudio;
private TextView mPicture;
private TextView mZip;
private TextView mApp;
public static String all;
public static String word;
public static String vodie;
public static String audio;
public static String img;
public static String zip;
public static String apk;
Handler handler = new Handler() {



    @Override
    public void handleMessage(Message msg) {
        all = Formatter.formatFileSize(FilemgrActivity.this, fileManger.getAllSzie());
        word = Formatter.formatFileSize(FilemgrActivity.this, fileManger.getWordSzie());
        vodie = Formatter.formatFileSize(FilemgrActivity.this, fileManger.getvodieSzie());
        audio = Formatter.formatFileSize(FilemgrActivity.this, fileManger.getandioSzie());
        img = Formatter.formatFileSize(FilemgrActivity.this, fileManger.getimgSzie());
        zip = Formatter.formatFileSize(FilemgrActivity.this, fileManger.getzipSzie());
        apk = Formatter.formatFileSize(FilemgrActivity.this, fileManger.getapkSSzie());
        switch (msg.what) {
            case 0:
                String tybeName = (String) msg.obj;
                mAll.setText(all);
                mSize.setText(Formatter.formatFileSize(FilemgrActivity.this, fileManger.getAllSzie()));
                switch (tybeName) {
                    case FileTypeUtil.TYPE_TXT:
                        mWord.setText(word);
                        break;
                    case FileTypeUtil.TYPE_VIDEO:
                        mVoide.setText(vodie);
                        break;
                    case FileTypeUtil.TYPE_AUDIO:
                        mAudio.setText(audio);
                        break;
                    case FileTypeUtil.TYPE_IMAGE:
                        mPicture.setText(img);
                        break;
                    case FileTypeUtil.TYPE_ZIP:
                        mZip.setText(zip);
                        break;
                    case FileTypeUtil.TYPE_APK:
                        mApp.setText(apk);
                        break;
                }
                break;
            case 1:
                mAll.setText(all);
                mSize.setText(all);
                mWord.setText(word);
                mVoide.setText(vodie);
                mAudio.setText(audio);
                mPicture.setText(img);
                mZip.setText(zip);
                mApp.setText(apk);
                break;

        }
    }
};
private FileManger fileManger;
private RelativeLayout mRLall;
private RelativeLayout mRLword;
private RelativeLayout mRLvodie;
private RelativeLayout mRLandio;
private RelativeLayout mRLimg;
private RelativeLayout mRLzip;
private RelativeLayout mRLapk;
public static List<FileInfo> apkList;
public static List<FileInfo> imgList;
public static List<FileInfo> zipList;
public static List<FileInfo> andioList;
public static List<FileInfo> vodieList;
public static List<FileInfo> wordList;
public static List<FileInfo> allList;

@Override
protected boolean isShowActionBar() {
    return true;
}

@Override
protected void initData() {
    setTitle("文件清理");

    fileManger = new FileManger();
    allList = fileManger.getallList();
    wordList = fileManger.getwordList();
    vodieList = fileManger.getvodieList();
    andioList = fileManger.getandioList();
    zipList = fileManger.getzipList();
    imgList = fileManger.getimgList();
    apkList = fileManger.getapklList();

    FileManger.searchONclick fileListener = new FileManger.searchONclick() {

        @Override
        public void searchTybe(String tybeaName) {
            Message msg = handler.obtainMessage();
            msg.obj = tybeaName;
            msg.what = 0;
            handler.sendMessage(msg);
        }

        @Override
        public void searchEnd() {
            Message msg = handler.obtainMessage();
            msg.what = 1;
            handler.sendMessage(msg);
        }
    };
    fileManger.setSearchListener(fileListener);
    new Thread() {
        @Override
        public void run() {
            super.run();
            fileManger.search();
        }
    }.start();

}

@Override
protected void initView() {
    mSize = getViewById(R.id.tv_file_size);
    mAll = getViewById(R.id.tv_file_all);
    mWord = getViewById(R.id.tv_file_word);
    mVoide = getViewById(R.id.tv_file_voide);
    mAudio = getViewById(R.id.tv_file_audio);
    mPicture = getViewById(R.id.tv_file_pic);
    mZip = getViewById(R.id.tv_file_yasuo);
    mApp = getViewById(R.id.tv_file_app);
    mRLall = getViewById(R.id.rela_fileshow_all);
    mRLword = getViewById(R.id.rela_fileshow_word);
    mRLvodie = getViewById(R.id.rela_fileshow_voide);
    mRLandio = getViewById(R.id.rela_fileshow_andio);
    mRLimg = getViewById(R.id.rela_fileshow_pic);
    mRLzip = getViewById(R.id.rela_fileshow_zip);
    mRLapk = getViewById(R.id.rela_fileshow_apk);

}

@Override
protected int getLayoutId() {
    return R.layout.activity_filemgr;
}

@Override
public void onClick(View v) {
    Intent intent = new Intent(FilemgrActivity.this,FileShowActivity.class);
    intent.putExtra("id", v.getId());
    startActivity(intent);
    finish();
}

@Override
protected void setListaner() {
    super.setListaner();
    mRLall.setOnClickListener(this);
    mRLword.setOnClickListener(this);
    mRLvodie.setOnClickListener(this);
    mRLandio.setOnClickListener(this);
    mRLzip.setOnClickListener(this);
    mRLapk.setOnClickListener(this);
    mRLimg.setOnClickListener(this);

}
}

主界面的布局

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#fff"
tools:context="com.gfd.phone.activity.FilemgrActivity">
<RelativeLayout
  android:layout_width="match_parent"
  android:layout_height="100dp"
  android:background="#2c63d7"
  >
  <TextView
      android:id="@+id/zhaodao"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="已找到"
      android:textColor="#fff"
      android:textSize="20dp"
      android:textStyle="bold|italic"
      android:layout_toLeftOf="@+id/tv_file_size"
      android:layout_alignBaseline="@+id/tv_file_size"/>
  <TextView
      android:id="@+id/tv_file_size"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="20.0m"
      android:textColor="#fff"
      android:textSize="50dp"
      android:textStyle="bold|italic"
      android:layout_centerInParent="true"
      />
 </RelativeLayout>
//ScrollView为了让下面的控件可以下拉,
<ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"

    >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:background="#f1eeee"
        >
        <RelativeLayout
            android:id="@+id/rela_fileshow_all"
            android:clickable="true"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:background="#ffffff"
            >
            <TextView
                android:id="@+id/one"
                android:text="全部"
                style="@style/file_list" />
            <TextView
                android:id="@+id/tv_file_all"
                android:text="准备中····"
                style="@style/file_size"
                android:layout_toRightOf="@+id/one"/>
            <ImageView style="@style/file_right" />
        </RelativeLayout>
        <View
            android:layout_width="match_parent"
            android:layout_height="1.5dp"
            android:background="#00ffffff"/>
        <RelativeLayout
            android:id="@+id/rela_fileshow_word"
            android:clickable="true"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:background="#ffffff">
            <TextView
                android:id="@+id/two"
                android:text="文档"
                style="@style/file_list" />
            <TextView
                android:id="@+id/tv_file_word"
                android:text="准备中····"
                style="@style/file_size"
                android:layout_toRightOf="@+id/two"/>
            <ImageView style="@style/file_right" />
        </RelativeLayout>
        <View
            android:layout_width="match_parent"
            android:layout_height="1.5dp"
            android:background="#00ffffff"/>
        <RelativeLayout
            android:id="@+id/rela_fileshow_voide"
            android:clickable="true"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:background="#ffffff">
            <TextView
                android:id="@+id/threr"
                android:text="视频"
                style="@style/file_list" />
            <TextView
                android:id="@+id/tv_file_voide"
                android:text="准备中····"
                style="@style/file_size"
                android:layout_toRightOf="@+id/threr"/>
            <ImageView style="@style/file_right" />
        </RelativeLayout>
        <View
            android:layout_width="match_parent"
            android:layout_height="1.5dp"
            android:background="#00ffffff"/>
        <RelativeLayout
            android:id="@+id/rela_fileshow_andio"
            android:clickable="true"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:background="#ffffff">
            <TextView
                android:id="@+id/four"
                android:text="音频"
                style="@style/file_list" />
            <TextView
                android:id="@+id/tv_file_audio"
                android:text="准备中····"
                style="@style/file_size"
                android:layout_toRightOf="@+id/four"/>
            <ImageView style="@style/file_right" />
        </RelativeLayout>
        <View
            android:layout_width="match_parent"
            android:layout_height="1.5dp"
            android:background="#00ffffff"/>
        <RelativeLayout
            android:id="@+id/rela_fileshow_pic"
            android:clickable="true"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:background="#ffffff">
            <TextView
                android:id="@+id/five"
                android:text="图像"
                style="@style/file_list" />
            <TextView
                android:id="@+id/tv_file_pic"
                android:text="准备中····"
                style="@style/file_size"
                android:layout_toRightOf="@+id/five"/>
            <ImageView style="@style/file_right" />
        </RelativeLayout>
        <View
            android:layout_width="match_parent"
            android:layout_height="1.5dp"
            android:background="#00ffffff"/>
        <RelativeLayout
            android:id="@+id/rela_fileshow_zip"
            android:clickable="true"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:background="#ffffff">
            <TextView
                android:id="@+id/six"
                android:text="压缩包"
                style="@style/file_list" />
            <TextView
                android:id="@+id/tv_file_yasuo"
                android:text="准备中····"
                style="@style/file_size"
                android:layout_toRightOf="@+id/six"/>
            <ImageView style="@style/file_right" />
        </RelativeLayout>
        <View
            android:layout_width="match_parent"
            android:layout_height="1.5dp"
            android:background="#00ffffff"/>
        <RelativeLayout
            android:id="@+id/rela_fileshow_apk"
            android:clickable="true"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:background="#ffffff">
            <TextView
                android:id="@+id/seven"
                android:text="程序包"
                style="@style/file_list" />
            <TextView
                android:id="@+id/tv_file_app"
                android:text="准备中····"
                style="@style/file_size"
                android:layout_toRightOf="@+id/seven"/>
            <ImageView style="@style/file_right" />
        </RelativeLayout>
        <View
            android:layout_width="match_parent"
            android:layout_height="1.5dp"
            android:background="#00ffffff"/>

    </LinearLayout>

</ScrollView>
</LinearLayout>

获取各种文件,并区分类型的类

public class FileManger {
public  List<FileInfo> allList = new ArrayList<>();
public  List<FileInfo> wordList = new ArrayList<>();
public  List<FileInfo> vodieList = new ArrayList<>();
public  List<FileInfo> andioList = new ArrayList<>();
public  List<FileInfo> imgList = new ArrayList<>();
public  List<FileInfo> zipList = new ArrayList<>();
public  List<FileInfo> apkList = new ArrayList<>();

public  long wordSize;
public  long vodieSize;
public  long andioSize;
public  long imgSize;
public  long zipSize;
public  long apkSize;
long allSize;
public  long getAllSzie(){return allSize;}
public  long getWordSzie(){return wordSize;}
public  long getvodieSzie(){return vodieSize;}
public  long getandioSzie(){return andioSize;}
public  long getimgSzie(){return imgSize;}
public  long getzipSzie(){return zipSize;}
public  long getapkSSzie(){return apkSize;}
public  List<FileInfo> getallList(){return allList;}
public  List<FileInfo> getwordList(){return wordList;}
public  List<FileInfo> getvodieList(){return vodieList;}
public  List<FileInfo> getandioList(){return andioList;}
public  List<FileInfo> getimgList(){return imgList;}
public  List<FileInfo> getzipList(){return zipList;}
public  List<FileInfo> getapklList(){return apkList;}


private searchONclick fileListener;
private boolean isStopSearch;

public void setStopSearch(boolean isStopSearch) {
    this.isStopSearch = isStopSearch;
}

public void search() {
    String rootpath = Environment.getExternalStorageDirectory().getAbsolutePath();
    File file = new File(rootpath);
    search(file, false);

}

public void search(File file, boolean isFileRun) {
    if (isStopSearch) {
        if (fileListener != null && isFileRun) fileListener.searchEnd();
        return;
    }
    if (file != null || file.exists() || file.canRead()) {

        if (file.isDirectory()) {
            File[] files = file.listFiles();
            for (File file1 : files) {
                search(file1, false);
            }
        } else {
            String name = null;
            name = file.getName();
            String[] data = FileTypeUtil.getFileIconAndTypeName(file);
            String ioceNaem = data[0];
            String tybeName = data[1];
            FileInfo fileInfo = new FileInfo(file, data[0], data[1]);
            allList.add(fileInfo);
            allSize += file.length();
            switch (data[1]) {
                case FileTypeUtil.TYPE_TXT:
                    wordList.add(fileInfo);
                    wordSize += file.length();
                    break;
                case FileTypeUtil.TYPE_VIDEO:
                    vodieList.add(fileInfo);
                    vodieSize += file.length();
                    break;
                case FileTypeUtil.TYPE_AUDIO:
                    andioList.add(fileInfo);
                    andioSize += file.length();
                    break;
                case FileTypeUtil.TYPE_IMAGE:
                    imgList.add(fileInfo);
                    imgSize += file.length();
                    break;
                case FileTypeUtil.TYPE_ZIP:
                    zipList.add(fileInfo);
                    zipSize += file.length();
                    break;
                case FileTypeUtil.TYPE_APK:
                    apkList.add(fileInfo);
                    apkSize += file.length();
                    break;
            }
            if (fileListener != null) fileListener.searchEnd();
            return;
        }

    }


}


public interface searchONclick {
    void searchTybe(String tybeaName);

    void searchEnd();
}

public void setSearchListener(searchONclick fileListener) {

    this.fileListener = fileListener;
}
}

区分文件的类

   public static String[] getFileIconAndTypeName(File file) {
    // 定义数组保存文件类型以及图标 iconAndTypes[0] 表示文件图标 iconAndTypes[1] 文件类型
    String[] iconAndTypes = new String[2];
    // 首先设置默认文件图标以及类型
    iconAndTypes[0] = "icon_file";
    iconAndTypes[1] = "*/*";
    if (file.isFile()) {
        // 根据文件名称进行判断
        String name = file.getName();
        int dotIndex = name.lastIndexOf(".");
        if (dotIndex < 0) {
            return iconAndTypes;
        }
        //获取文件后缀名称
        String end = name.substring(dotIndex + 1, name.length())
                .toLowerCase();
        if (end.equals("")) {
            return iconAndTypes;
        }

        // 对  ICON_TYPE_Table进行便利   找到对应图标以及类型
        for (int i = 0; i < ICON_TYPE_Table.length; i++) {
            if (end.equals(ICON_TYPE_Table[i][0])) {
                iconAndTypes[0] = ICON_TYPE_Table[i][1];
                iconAndTypes[1] = ICON_TYPE_Table[i][2];
            }
        }
        return iconAndTypes;
    }
    return iconAndTypes;
}

private static final String[][] ICON_TYPE_Table = {
        // {文件后缀名,文件对应图像名称, 文件所属类型}
        {"apk", "icon_video", TYPE_APK},
        {"3gp", "icon_video", TYPE_VIDEO},
        {"aif", "icon_audio", TYPE_AUDIO},
        {"aifc", "icon_audio", TYPE_AUDIO},
        {"aiff", "icon_audio", TYPE_AUDIO},
        {"als", "icon_audio", TYPE_AUDIO},
        {"asc", "icon_text_plain", TYPE_TXT},
        {"asf", "icon_video", TYPE_VIDEO},
        {"asx", "icon_video", TYPE_VIDEO},
        {"au", "icon_audio", TYPE_AUDIO},
        {"avi", "icon_video", TYPE_VIDEO},
        {"awb", "icon_audio", TYPE_AUDIO},
        {"bmp", "icon_bmp", TYPE_IMAGE},
        {"bz2", "icon_archive", TYPE_ZIP}, {"c", "icon_c", TYPE_TXT},
        {"cpp", "icon_cpp", TYPE_TXT}, {"css", "icon_css", TYPE_TXT},
        {"dhtml", "icon_html", TYPE_TXT},
        {"doc", "icon_doc", TYPE_TXT}, {"dot", "icon_doc", TYPE_TXT},
        {"es", "icon_audio", TYPE_AUDIO},
        {"esl", "icon_audio", TYPE_AUDIO},
        {"fvi", "icon_video", TYPE_VIDEO},
        {"gif", "icon_gif", TYPE_IMAGE}, {"gz", "icon_gzip", TYPE_ZIP},
        {"h", "icon_c_h", TYPE_TXT}, {"htm", "icon_html", TYPE_TXT},
        {"html", "icon_html", TYPE_TXT},
        {"hts", "icon_html", TYPE_TXT},
        {"ico", "icon_ico", TYPE_IMAGE},
        {"ief", "icon_image", TYPE_IMAGE},
        {"ifm", "icon_gif", TYPE_IMAGE},
        {"ifs", "icon_image", TYPE_IMAGE},
        {"imy", "icon_audio", TYPE_AUDIO},
        {"it", "icon_audio", TYPE_AUDIO},
        {"itz", "icon_audio", TYPE_AUDIO},
        {"j2k", "icon_jpeg", TYPE_IMAGE},
        {"java", "icon_java", TYPE_TXT},
        {"jar", "icon_java", TYPE_ZIP},
        {"jnlp", "icon_java", TYPE_TXT},
        {"jpe", "icon_jpeg", TYPE_IMAGE},
        {"jpeg", "icon_jpeg", TYPE_IMAGE},
        {"jpg", "icon_jpeg", TYPE_IMAGE},
        {"jpz", "icon_jpeg", TYPE_IMAGE},
        {"js", "icon_javascript", TYPE_TXT},
        {"lsf", "icon_video", TYPE_VIDEO},
        {"lsx", "icon_video", TYPE_VIDEO},
        {"m15", "icon_audio", TYPE_AUDIO},
        {"m3u", "icon_playlist", TYPE_AUDIO},
        {"m3url", "icon_playlist", TYPE_AUDIO},
        {"ma1", "icon_audio", TYPE_AUDIO},
        {"ma2", "icon_audio", TYPE_AUDIO},
        {"ma3", "icon_audio", TYPE_AUDIO},
        {"ma5", "icon_audio", TYPE_AUDIO},
        {"mdz", "icon_audio", TYPE_AUDIO},
        {"mid", "icon_audio", TYPE_AUDIO},
        {"midi", "icon_audio", TYPE_AUDIO},
        {"mil", "icon_image", TYPE_IMAGE},
        {"mio", "icon_audio", TYPE_AUDIO},
        {"mng", "icon_video", TYPE_VIDEO},
        {"mod", "icon_audio", TYPE_AUDIO},
        {"mov", "icon_video", TYPE_VIDEO},
        {"movie", "icon_video", TYPE_VIDEO},
        {"mp2", "icon_mp3", TYPE_AUDIO},
        {"mp3", "icon_mp3", TYPE_AUDIO},
        {"mp4", "icon_video", TYPE_VIDEO},
        {"mpe", "icon_video", TYPE_VIDEO},
        {"mpeg", "icon_video", TYPE_VIDEO},
        {"mpg", "icon_video", TYPE_VIDEO},
        {"mpg4", "icon_video", TYPE_VIDEO},
        {"mpga", "icon_mp3", TYPE_AUDIO},
        {"nar", "icon_zip", TYPE_ZIP},
        {"nbmp", "icon_image", TYPE_IMAGE},
        {"nokia-op-logo", "icon_image", TYPE_IMAGE},
        {"nsnd", "icon_audio", TYPE_AUDIO},
        {"pac", "icon_audio", TYPE_AUDIO},
        {"pae", "icon_audio", TYPE_AUDIO},
        {"pbm", "icon_bmp", TYPE_IMAGE},
        {"pcx", "icon_image", TYPE_IMAGE},
        {"pda", "icon_image", TYPE_IMAGE},
        {"pdf", "icon_pdf", TYPE_TXT},
        {"pgm", "icon_image", TYPE_IMAGE},
        {"pict", "icon_image", TYPE_IMAGE},
        {"png", "icon_png", TYPE_IMAGE},
        {"pnm", "icon_image", TYPE_IMAGE},
        {"pnz", "icon_png", TYPE_IMAGE}, {"pot", "icon_ppt", TYPE_TXT},
        {"ppm", "icon_image", TYPE_IMAGE},
        {"pps", "icon_ppt", TYPE_TXT}, {"ppt", "icon_ppt", TYPE_TXT},
        {"pvx", "icon_video", TYPE_VIDEO},
        {"qcp", "icon_audio", TYPE_AUDIO},
        {"qt", "icon_video", TYPE_VIDEO},
        {"qti", "icon_image", TYPE_IMAGE},
        {"qtif", "icon_image", TYPE_IMAGE},
        {"ra", "icon_audio", TYPE_AUDIO},
        {"ram", "icon_audio", TYPE_AUDIO},
        {"rar", "icon_rar", TYPE_ZIP},
        {"ras", "icon_image", TYPE_IMAGE},
        {"rf", "icon_image", TYPE_IMAGE},
        {"rgb", "icon_image", TYPE_IMAGE},
        {"rm", "icon_audio", TYPE_AUDIO},
        {"rmf", "icon_audio", TYPE_AUDIO},
        {"rmm", "icon_audio", TYPE_AUDIO},
        {"rmvb", "icon_audio", TYPE_AUDIO},
        {"rp", "icon_image", TYPE_IMAGE},
        {"rpm", "icon_audio", TYPE_AUDIO},
        {"rtf", "icon_text_richtext", TYPE_TXT},
        {"rv", "icon_video", TYPE_VIDEO},
        {"s3m", "icon_audio", TYPE_AUDIO},
        {"s3z", "icon_audio", TYPE_AUDIO},
        {"shtml", "icon_html", TYPE_TXT},
        {"si6", "icon_image", TYPE_IMAGE},
        {"si7", "icon_image", TYPE_IMAGE},
        {"si9", "icon_image", TYPE_IMAGE},
        {"smd", "icon_audio", TYPE_AUDIO},
        {"smz", "icon_audio", TYPE_AUDIO},
        {"snd", "icon_audio", TYPE_AUDIO},
        {"stm", "icon_audio", TYPE_AUDIO},
        {"svf", "icon_image", TYPE_IMAGE},
        {"svg", "icon_image", TYPE_IMAGE},
        {"svh", "icon_image", TYPE_IMAGE},
        {"swf", "icon_flash", TYPE_VIDEO},
        {"swfl", "icon_flash", TYPE_VIDEO},
        {"tar", "icon_tar", TYPE_ZIP}, {"taz", "icon_tar", TYPE_ZIP},
        {"tgz", "icon_tar", TYPE_ZIP},
        {"tif", "icon_tiff", TYPE_IMAGE},
        {"tiff", "icon_tiff", TYPE_IMAGE},
        {"toy", "icon_image", TYPE_IMAGE},
        {"tsi", "icon_audio", TYPE_AUDIO},
        {"txt", "icon_text_plain", TYPE_TXT},
        {"ult", "icon_audio", TYPE_AUDIO},
        {"vdo", "icon_video", TYPE_VIDEO},
        {"vib", "icon_audio", TYPE_AUDIO},
        {"viv", "icon_video", TYPE_VIDEO},
        {"vivo", "icon_video", TYPE_VIDEO},
        {"vox", "icon_audio", TYPE_AUDIO},
        {"vqe", "icon_audio", TYPE_AUDIO},
        {"vqf", "icon_audio", TYPE_AUDIO},
        {"vql", "icon_audio", TYPE_AUDIO},
        {"wav", "icon_wav", TYPE_VIDEO},
        {"wax", "icon_audio", TYPE_AUDIO},
        {"wbmp", "icon_bmp", TYPE_IMAGE},
        {"wi", "icon_image", TYPE_IMAGE},
        {"wm", "icon_video", TYPE_VIDEO},
        {"wma", "icon_wma", TYPE_AUDIO},
        {"wmv", "icon_video", TYPE_VIDEO},
        {"wmx", "icon_video", TYPE_VIDEO},
        {"wpng", "icon_png", TYPE_IMAGE},
        {"wv", "icon_video", TYPE_VIDEO},
        {"wvx", "icon_video", TYPE_VIDEO},
        {"xbm", "icon_bmp", TYPE_IMAGE},
        {"xht", "icon_xhtml_xml", TYPE_TXT},
        {"xhtm", "icon_xhtml_xml", TYPE_TXT},
        {"xhtml", "icon_xhtml_xml", TYPE_TXT},
        {"xla", "icon_xls", TYPE_TXT}, {"xlc", "icon_xls", TYPE_TXT},
        {"xlm", "icon_xls", TYPE_TXT}, {"xls", "icon_xls", TYPE_TXT},

        {"xlt", "icon_xls", TYPE_TXT}, {"xlw", "icon_xls", TYPE_TXT},
        {"xm", "icon_audio", TYPE_AUDIO},
        {"xml", "icon_xml", TYPE_TXT},
        {"xmz", "icon_audio", TYPE_AUDIO},
        {"xpm", "icon_image", TYPE_IMAGE},
        {"xsit", "icon_xml", TYPE_TXT}, {"xsl", "icon_xml", TYPE_TXT},
        {"xwd", "icon_image", TYPE_IMAGE},
        {"zip", "icon_zip", TYPE_ZIP}};

文件的实例

 public class FileInfo {
private String tybeName;
private String fileSize;
private File name;
public boolean select;
public String time;

public String getTime() {
    long time=name.lastModified();
    SimpleDateFormat date=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    return date.format(time);
}

public void setTime(String time) {
    this.time = time;
}

public boolean isSelect() {
    return select;
}

public void setSelect(boolean select) {
    this.select = select;
}

public FileInfo(File name, String tybeName, String fileSize) {
    this.tybeName = tybeName;
    this.fileSize = fileSize;
    this.name=name;
}

public String getTybeName() {
    return tybeName;
}

public String getFileSize() {
    return fileSize;
}

public File getName() {
    return name;
}
}

软件清理的界面

public class FileShowActivity extends BaseActivity {


private TextView mTvCount;
private TextView mTvSize;
private ListView mList;
private Button mBtUnistall;
public List<FileInfo> fileInfos;
public FileShowAdapter adapter;
private int a;
private String size;

@Override
protected boolean isShowActionBar() {
    return true;
}

//重新基类,为了刷新文件的界面
protected void initActionBar(boolean showActionBar) {
    super.initActionBar(showActionBar);
    ImageView imageView= getViewById(R.id.img_root_title);
    imageView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            openActivity(FilemgrActivity.class,true);
        }
    });
}

@Override
protected void initData() {
    a = getIntent().getIntExtra("id", -1);
    switch (a) {
        case R.id.rela_fileshow_all:
            setTitle("全部");
            fileInfos = FilemgrActivity.allList;
            size = FilemgrActivity.all;
            break;
        case R.id.rela_fileshow_word:
            fileInfos = FilemgrActivity.wordList;
            size = FilemgrActivity.word;
            setTitle("文档");
            break;
        case R.id.rela_fileshow_voide:
            fileInfos = FilemgrActivity.vodieList;
            size = FilemgrActivity.vodie;
            adapter = new FileShowAdapter(FilemgrActivity.vodieList);
            mTvCount.setText(FilemgrActivity.vodieList.size() + "");
            mTvSize.setText(FilemgrActivity.vodie);

            setTitle("视频");
            break;
        case R.id.rela_fileshow_andio:
            fileInfos = FilemgrActivity.andioList;
            size = FilemgrActivity.audio;
            setTitle("音频");
            break;
        case R.id.rela_fileshow_zip:
            fileInfos = FilemgrActivity.zipList;
            size = FilemgrActivity.zip;
            setTitle("压缩包");
            break;
        case R.id.rela_fileshow_apk:
            fileInfos = FilemgrActivity.apkList;
            size = FilemgrActivity.apk;
            setTitle("程序包");
            break;
        case R.id.rela_fileshow_pic:
            fileInfos = FilemgrActivity.imgList;
            size = FilemgrActivity.img;
            setTitle("图片");
            break;
    }
    adapter = new FileShowAdapter(fileInfos);
    mList.setAdapter(adapter);
    mTvCount.setText(fileInfos.size() + "");
    mTvSize.setText(size);

}

@Override
protected void initView() {
    mTvCount = getViewById(R.id.tv_fileshow_count);
    mTvSize = getViewById(R.id.tv_fileshow_size);
    mList = getViewById(R.id.list_fileshow);
    mBtUnistall = getViewById(R.id.bt_fileshow_unitstall);
}

@Override
protected int getLayoutId() {
    return R.layout.activity_file_show;
}

public void deleFile(View view) {
    for (int i = 0; i < fileInfos.size(); i++) {
        FileInfo fileInfo = fileInfos.get(i);
        if (fileInfo.isSelect()) {
            if (fileInfo.getName().delete()) {
                fileInfos.remove(fileInfo);
            } else {
                Toast.makeText(this, "删除失败", Toast.LENGTH_SHORT).show();
            }
        }
    }
    adapter.notifyDataSetChanged();
    long size = 0;
    for (FileInfo fileInfo : fileInfos) {
        size += fileInfo.getName().length();
    }
    mTvCount.setText(fileInfos.size() + "");
    mTvSize.setText(Formatter.formatFileSize(this, size));
}

}

文件清理的布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.gfd.phone.activity.FileShowActivity">
  <LinearLayout
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:orientation="horizontal"
   android:padding="5dp">
   <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="文件数量:"
       android:textSize="20dp"/>
   <TextView
       android:id="@+id/tv_fileshow_count"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="23"
       android:textSize="30dp"
       android:textColor="#e2a223"
       android:textStyle="italic|bold"/>
   <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="所占内存:"
       android:textSize="20dp"/>
   <TextView
       android:id="@+id/tv_fileshow_size"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="30.00"
       android:textSize="30dp"
       android:textColor="#e2a223"
       android:textStyle="italic|bold"/>
  </LinearLayout>
<ListView
    android:id="@+id/list_fileshow"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    ></ListView>
<Button
    android:id="@+id/bt_fileshow_unitstall"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="清理所选文件"
    android:background="@drawable/bt_rocket_bg"
    android:layout_margin="10dp"
    android:onClick="deleFile"
    />
 </LinearLayout>

适配器

public class FileShowAdapter extends BaseAdapter {

private List<FileInfo> datas;

public FileShowAdapter(List<FileInfo> datas) {

   this.datas=datas;
}

@Override
public int getCount() {
    return datas==null?0:datas.size();
}

@Override
public Object getItem(int position) {
    return position;
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHordler hordler=null;
    if (convertView==null){
        convertView= LayoutInflater.from(parent.getContext()).inflate(R.layout.item_fileshow,null);
        hordler=new ViewHordler(convertView);
        convertView.setTag(hordler);
    }else {
       hordler= (ViewHordler) convertView.getTag();
    }
   final FileInfo fileInfo=datas.get(position);
    String ioceName=fileInfo.getTybeName();
    Resources resources = parent.getContext().getResources();
    int ioceId = resources.getIdentifier(ioceName, "mipmap", parent.getContext().getPackageName());
    hordler.mIoce.setBackgroundResource(ioceId);
    hordler.mTvName.setText(fileInfo.getName().getName());
    hordler.mTvData.setText(fileInfo.getTime());
    hordler.mTvSize.setText(Formatter.formatFileSize(parent.getContext(),fileInfo.getName().length()));
    hordler.mCbSelect.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            fileInfo.setSelect(isChecked);
        }
    });
    hordler.mCbSelect.setChecked(fileInfo.isSelect());

    return hordler.convertView;
}
public class ViewHordler{
    private View convertView;
    private final CheckBox mCbSelect;
    private final TextView mTvName;
    private final ImageView mIoce;
    private final TextView mTvData;
    private final TextView mTvSize;

    public ViewHordler(View convertView) {
        this.convertView = convertView;
        mCbSelect = (CheckBox) convertView.findViewById(R.id.cb_item_fileshow);
        mTvName = (TextView) convertView.findViewById(R.id.tv_item_fileshow_name);
        mIoce = (ImageView) convertView.findViewById(R.id.img_item_fileshow_ioce);
        mTvData = (TextView) convertView.findViewById(R.id.tv_item_fileshow_date);
        mTvSize = (TextView) convertView.findViewById(R.id.tv_item_fileshow_size);
    }

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 225,641评论 6 525
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 96,754评论 3 408
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 173,075评论 0 370
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 61,369评论 1 303
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 70,386评论 6 402
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 53,800评论 1 317
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 42,122评论 3 431
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 41,130评论 0 281
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 47,689评论 1 327
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 39,693评论 3 348
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 41,804评论 1 356
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 37,399评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 43,128评论 3 341
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 33,528评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 34,705评论 1 278
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 50,409评论 3 383
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 46,878评论 2 368

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,756评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,505评论 25 707
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,688评论 18 399
  • 时间:2017年7月10日 星期一 地点:卡乐咪绿地中心-牧笛儿童之家 内容:手工折纸~青蛙 美好的一天结束了,明天见!
    梦与自由阅读 172评论 0 0
  • 这段时间从学校搬回来,几十本书。 整理好了一个书架! 把儿子的书籍也整理了一个格子来存放。 这几天每天给儿子全部的...
    一切不过过眼烟云阅读 146评论 0 0