?? filecontrol.java
字號(hào):
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
/**
* 打開(kāi)一個(gè) 文件/文件夾 ,可以以三種方式打開(kāi):READ、READ_WRITE、WRITE。
* 如果沒(méi)有指定第二個(gè)參數(shù),則默認(rèn)為READ_WRITE方式。
* 注意文件夾的路徑寫(xiě)法,路徑最后有“/”,則表示打開(kāi)的是文件夾。
* 文件路徑的寫(xiě)法有很多種,這里的路徑寫(xiě)法適合與索愛(ài)的機(jī)型。
* 比如: 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);
/**
* 注意,上面的方法在文件不存在的情況下,仍能執(zhí)行成功,所以我們要用下面的方法
* 判斷文件是否存在,此函數(shù)要求文件是可讀的, 即文件打開(kāi)方式不能是以 Connector.WRITE
* 方式打開(kāi)的 否則會(huì)拋出 IllegalModeException 異常
*/
// GarbageClear.instance.teststr +="open dir \n";
if (fc.exists()) {
/**
* 下面的方法是判斷打開(kāi)的文件是否為文件夾
*/
GarbageClear.instance.teststr2 =" --is dir";
System.out.println("exist this dir");;
boolean isfolder = fc.isDirectory();
if (!isfolder) {
return;
}
list = new List("list", ChoiceGroup.IMPLICIT);
/**
* 獲取目錄下所有文件, 注意此方法返回的是所有文件的名字。 要求文件的打開(kāi)方式是可讀
*/
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中顯示正確的文件數(shù)和節(jié)省的儲(chǔ)存空間,只能讓線程一直執(zhí)行了
// 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();
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -