⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filecontrol.java

📁 文件浏览的小程序
💻 JAVA
字号:
package cn.zqk.utils;

import java.util.Enumeration;

import javax.microedition.io.Connector;
import javax.microedition.io.file.FileConnection;
import javax.microedition.io.file.FileSystemRegistry;
import javax.microedition.lcdui.ChoiceGroup;
import javax.microedition.lcdui.List;


import cn.zqk.ui.*;



public class FileControl {

	private static ClearReport clearReport ; 
	
	
	
	//delete garbage files
	public void Dealwith(){
		ListDeleteFiles();	
	}
	
	
//	public void ShowReport(){
//		clearReport = new ClearReport();
//		GarbageClear.instance.disp.setCurrent(clearReport);	
//	}
	
	
	public void ListDeleteFiles() {
		new Thread() {
			private String clearinfo;

			public void run() {				
				
				try {
					FileConnection fc = null;
					Enumeration enums = null;
					String str = "";
					List list;

					String strpre = "";	// use it to compare with GarbageClear.instance.deleinfo,if equals ,then delete function end flag;
										// and set the 
					
					/**
					 * 打开一个 文件/文件夹 ,可以以三种方式打开:READ、READ_WRITE、WRITE。
					 * 如果没有指定第二个参数,则默认为READ_WRITE方式。
					 * 注意文件夹的路径写法,路径最后有“/”,则表示打开的是文件夹。
					 * 文件路径的写法有很多种,这里的路径写法适合与索爱的机型。
					 * 比如: MOTO:file:///e/other/notes
					 */
					System.out.println("dircount ="+ GarbageClear.instance.dircount);
					
					GarbageClear.instance.teststr ="*"+ GarbageClear.instance.dircount;
					
					for (int n = 0; n < GarbageClear.instance.dircount; n++) {
						System.out.println("every is " + GarbageClear.instance.filepath[n]);
						
						GarbageClear.instance.teststr += GarbageClear.instance.filepath[n];
						
						if (GarbageClear.instance.filepath[n]!=""){
							try{
								fc = (FileConnection) Connector.open(GarbageClear.instance.filepath[n],Connector.READ);
								/**
								 * 注意,上面的方法在文件不存在的情况下,仍能执行成功,所以我们要用下面的方法
								 * 判断文件是否存在,此函数要求文件是可读的, 即文件打开方式不能是以 Connector.WRITE
								 * 方式打开的 否则会抛出 IllegalModeException 异常
								 */
								
//								GarbageClear.instance.teststr +="open dir \n";
								
								if (fc.exists()) {
									/**
									 * 下面的方法是判断打开的文件是否为文件夹
									 */
									GarbageClear.instance.teststr2 =" --is dir";
									
									System.out.println("exist this dir");;
									
									boolean isfolder = fc.isDirectory();
									if (!isfolder) {
										return;
									}
		
									list = new List("list", ChoiceGroup.IMPLICIT);
		
									/**
									 * 获取目录下所有文件, 注意此方法返回的是所有文件的名字。 要求文件的打开方式是可读
									 */
									enums = fc.list();
									while (enums.hasMoreElements()) {
										str = enums.nextElement().toString();
										list.append(str, null);
										
										//print filename
										System.out.println(str);
										
										GarbageClear.instance.savefilecount ++;
										//print filesize
										System.out.println(GarbageClear.instance.savefilecount);
										

										
										clearinfo = " delete " + str + "\n";
		
										// change the clearinfo in ClearReport canvas
										deleteFile(GarbageClear.instance.filepath[n] + str);
		
										GarbageClear.instance.deleinfo = " delete "+ GarbageClear.instance.filepath[n] + str + "\n";									
									}
									
									//set the end info of deleinfo
									GarbageClear.instance.deleinfo = "";
									
									//set the end condition of repaint(); 我不知道为什么如果文件多就不能在ClearReport中显示正确的文件数和节省的储存空间,只能让线程一直执行了
//									GarbageClear.instance.finished = true;								
								}else{
									GarbageClear.instance.teststr2 =" isn't dir";
								}								
								fc.close();
								
							}catch (Exception e){
								GarbageClear.instance.teststr2 ="open dir error";
							}
							
						}
					}	
				} catch (Exception e) {
					System.out.println("get file error!!!!!!");
				}
			}
		}.start();
	}
	
	
	 /*删除文件*/
	public void deleteFile(String path) {
		try {
			FileConnection fc = (FileConnection) (Connector.open(path,Connector.READ_WRITE));
			if (fc.exists())
			{
				long size = fc.fileSize();
				GarbageClear.instance.savefilesize +=  size;
				
				System.out.println("filesize is " + size);
				System.out.println("GarbageClear.instance.savefilesize is " + GarbageClear.instance.savefilesize);
				fc.delete();
			}
		} catch (Exception e) {
			System.out.println("deleteFileErr:" + e.toString());
		}
	}
	

	//for testing............list the nokia roots dir
	public void listroots(){
		new Thread() {
			private String clearinfo;

			public void run() {				
				GarbageClear.instance.deleinfo= "";
				try {	
					
					Enumeration emun = FileSystemRegistry.listRoots();
					String tmp = "";
					while (emun.hasMoreElements()) {
						tmp = emun.nextElement().toString();
						GarbageClear.instance.deleinfo += tmp + "\n";
					}
				} catch (Exception e) {
					System.out.println("get file error!!!!!!");
				}
			}
		}.start();		
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -