美文网首页
文件的查询和删除

文件的查询和删除

作者: 谜之龙 | 来源:发表于2017-05-02 17:31 被阅读0次
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);
    }

}

}

相关文章

  • 文件的查询和删除

    文件查询的主界面: 主界面的布局 获取各种文件,并区分类型的类 区分文件的类 文件的实例 软件清理的界面 文件清理...

  • Directory 类

    FileDirectory 类是静态类,提供了许多静态方法用于移动、复制和删除文件。这些方法可以移动文件、查询和更...

  • linux 常用命令

    文件非编辑状态查询关键字 斜杆+关键字,之后回车,n向下,N向上查询 删除目录下文件,不删除目录 rm -f ru...

  • NodeJs基础学习--fs模块(7)

    在nodeJs中,所有的文件操作都是通过fs核心模块来实现的,包括文件目录的创建、删除、查询以及文件的读取和写入,...

  • Linux指定文件删除命令

    Linux指定文件删除命令 rm 查询命令 上述命令就可以删除当前文件夹下文件名带 “2017-08”的文件了

  • 2019-11-20 shell学习

    删除目录下固定大小的文件 循环查询hive表分区目录下文件个数

  • File 类

    File 类是静态类,提供了许多静态方法用于移动、复制和删除文件。这些方法可以移动文件、查询和更新属性,创建一个 ...

  • 模块xml

    倒入模块 xml模版 查询 修改 删除 生成一个XML文件

  • Linux文本处理三剑客之 sed

    sed是操作、过滤和转换文本内容的强大工具。常用功能包括对文件实现快速增删改查(增加、删除、修改、查询),其中查询...

  • 【原创】Node核心API(三)fs

    在 NodeJS 中,所有与文件操作都是通过 fs 核心模块来实现的,包括文件目录的创建、删除、查询以及文件的读取...

网友评论

      本文标题:文件的查询和删除

      本文链接:https://www.haomeiwen.com/subject/pnnctxtx.html