Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 編程之入門開發文件夾管理器開發文件事件操作-2

Android 編程之入門開發文件夾管理器開發文件事件操作-2

編輯:關於Android編程

上一篇博客,我們已經得到了文件夾列表,我們需要對文件列表子項添加事件,比如我們點擊的是文件,就執行

打開操作,點擊的是文件夾執行打開文件夾操作,遍歷文件清單,以此類推直到最後一個是文件位置,關於文件

與文件夾的處理後面會講到


在我的程序裡,我寫了一個類,對文件進行處理,FileOpreationUitl:

package com.example.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.content.Context;
import android.util.Log;
import android.widget.Toast;
/**
 * 文件的操作類
 * @author Engineer-Jsp
 * @date 2014.10.27
 */
public class FileOpreationUitl {
	public static Map mp3_List=new HashMap();
	public static List>mp3_data=new ArrayList>();
	public static String mp3_listitem;
//
	public static Map picture_List=new HashMap();
	public static List>picture_data=new ArrayList>();
	public static String picture_listitem;
//	
	public static Map video_List=new HashMap();
	public static List> video_data=new ArrayList>();
	public static String video_listitem;
	//刪除文件和目錄
	public void  deleteFile(File path){
		//如果傳來的參數path是文件,直接執行刪除操作
		if(path.isFile()){
			//刪除
			path.delete();
		//否則為文件夾,執行下面的操作	
		}else{
			//定義文件數組接收參數Path文件夾的文件列表
			File[] files=path.listFiles();
			//循環編歷文件
			for(File  f : files){
				//如果是文件執行
				if(f.isFile()){
					//刪除
					f.delete();
				}else{
					//調用自己遞歸
					deleteFile(f);
				}
			}
			//刪除目錄
			path.delete();
		}
	}
	//復制文件
	public void  copyFile(File currentpath,File srcpath){

		File newFile=new File(srcpath, currentpath.getName());
		if(!newFile.exists()){
			try {
				newFile.createNewFile();
				FileInputStream fileinput=new FileInputStream(currentpath);
				FileOutputStream fileout=new FileOutputStream(newFile);
				
				byte[] byt=new byte[1024 * 16];
				int length=0;
				while((length=fileinput.read(byt))!=-1){
					fileout.write(byt,0,length);
				}
				fileinput.close();
				fileout.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
//		else{
//			newFile.delete();
//			copyFile(currentpath, srcpath);
//		}
	}
	//復制文件夾
	public void  copyDirectory(File currentpath,File srcpath){

		if(currentpath.isFile()){
			copyFile(currentpath, srcpath);
		}else{
			File file=new File(srcpath, currentpath.getName());
			if(!file.exists()){
				file.mkdir();
			}
//			else{
//				file.delete();
//			}
			File[] files=currentpath.listFiles();
			for(File f : files){
				copyDirectory(f, file);
			}
			//刪除目錄
//			currentpath.delete();
		}
	}
	//新建
	public void  newFile(File currentpath){
		if(!currentpath.exists()){
			currentpath.mkdirs();
		}
		
	}
	//音樂分類
		/**
		 * 
		 * @param groupPath  如果你想獲取SDcard下面的所以mp3文件你就填sdcard路徑
		 * 用的是遞歸的方式獲取
		 */
		public void getReciver(File mp3_Path){
			//循環獲取sdcard目錄下面的目錄和文件
			for(int i=0; i< mp3_Path.listFiles().length; i++){
				File childFile = mp3_Path.listFiles()[i];
				
				//假如是目錄的話就繼續調用getSDcardFile()將childFile作為參數傳遞的方法裡面
				if(childFile.isDirectory()){
					getReciver(childFile);
				}else{
					//如果是文件的話,判斷是不是以.mp3結尾,是就加入到List裡面
					if(childFile.toString().endsWith(".mp3")){
						mp3_List.put(mp3_listitem,childFile.getName().toString());
						mp3_data.add(mp3_List);
						//打印文件的文件名
						System.out.println(childFile.getName());
						Log.d("XXXXXXXXXX",childFile.getName());
						//打印文件的路徑
						System.out.println(childFile.getAbsolutePath());
						Log.d("XXXXXXXXXX",childFile.getAbsolutePath());
					}
				}
			}
		}
	    //圖片分類
		public void getPicture(File picture_Path){
			//循環獲取sdcard目錄下面的目錄和文件
			for(int i=0; i
配合 MultiChoiceModeListener 執行多選,優於 setChoiceMode 單選,讓application可以執行批量的操作處理,包括復制、刪除等,下面看看效果:

執行新建測試,點擊右上角小+號:

\


點擊確定,生成文件夾,刷新列表:

\


下面看看批量復制操作,長按ListView Item,右上角小+號消失,生成刪除按鈕和復制按鈕,點擊Item選中,更改選中Item項背景顏色:


\


執行批量粘貼,這裡我只點了5項,所以只粘貼了5個文件夾,大家注意看右上角圖標,又恢復到了沒有復制操作的時候的圖標,其實在點擊復制按鈕之後,會添加一個粘貼按鈕,粘貼完後消失:

\


批量刪除操作:



文件操作大概就寫了這些,有需要的可以自己拓展,我這裡主要是方便大伙學習,謝謝~



  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved