亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? fileexplorer.java

?? 人民郵電出版社的《J2ME手機(jī)開發(fā)入門》全部源代碼
?? JAVA
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/*
 * FileExplorer.java
 *
 * cmdCreateed on 2005年3月18日, 下午11:21
 */

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

import java.util.*;
import java.io.*;
import javax.microedition.io.*;
import javax.microedition.io.file.*;

/**
 * 本程序?qū)崿F(xiàn)了一個(gè)簡(jiǎn)單的文件瀏覽器,主要具有以下功能:
 * <p>1、文件目錄瀏覽
 * <p>2、新建目錄或者文件
 * <p>3、刪除目錄或者文件
 * <p>4、復(fù)制文件
 * <p>5、剪切文件
 * <p>6、粘貼文件
 * <p>7、訪問目錄或者文件的屬性
 * <p>8、訪問文件的內(nèi)容
 * @author Liu Bin
 */
public class FileExplorer implements CommandListener{
    //保存MIDlet實(shí)例
    static FileExplorerDemo feInstance = null;
    //保存MIDet的Display
    private Display display = null;
    
    private String currDirName;
    
    private Command cmdView = new Command("查看", Command.ITEM, 1);
    private Command cmdCreate = new Command("新建", Command.ITEM, 2);
    private Command cmdDelete = new Command("刪除", Command.ITEM, 3);
    private Command cmdCopy = new Command("復(fù)制", Command.ITEM, 4);
    private Command cmdPaste = new Command("粘貼", Command.ITEM, 5);
    private Command cmdCut = new Command("剪切", Command.ITEM, 5);
    private Command cmdProperty = new Command("屬性", Command.ITEM, 2);
    private Command cmdCreateOK = new Command("確定", Command.OK, 1);
    private Command cmdBack = new Command("返回", Command.BACK, 2);
    private Command cmdExit = new Command("退出", Command.EXIT, 3);
    
    //創(chuàng)建文件或者目錄時(shí),用于輸入文件或者目錄的名字
    private TextField   nameInput;
    //在創(chuàng)建文件或者目錄時(shí),用于選擇是創(chuàng)建文件還是創(chuàng)建目錄
    private ChoiceGroup typeInput;
    
    private final static String[] attrList = { "讀", "寫", "隱藏" };
    private final static String[] typeList = { "文件", "目錄" };
    
    
    /** 文件和目錄的圖標(biāo) */
    private Image dirIcon, fileIcon;
    private Image[] iconList;
    
    /** 表示父目錄的字符串 */
    private final static String FATHER_FOLDER = "..";
    
    /**
     * 表示根目錄的字符串
     */
    private final static String ROOT = "/";
    
    /** 規(guī)范中定義的,文件夾結(jié)尾的字符串 */
    private final static String FOLDER_END_STR = "/";
    
    /** 規(guī)范中定義的,文件夾結(jié)尾的字符 */
    private final static char   FOLDER_END_CHAR = '/';
    
    /** 可以訪問的文件最大長(zhǎng)度 */
    public final static int MAX_FILE_LENGTH = 4096;
    
    /** 下面的三個(gè)變量用于復(fù)制和移動(dòng)文件 */
    private String clipboardFileName=null;
    private String clipboardDir=null;
    private boolean cutFlag = false;
    
    /** 創(chuàng)建一個(gè)文件瀏覽器實(shí)例 */
    public FileExplorer(FileExplorerDemo instance) {
        feInstance = instance;
        display = Display.getDisplay(feInstance);
        
        //缺省的路徑為根目錄
        currDirName = ROOT;
        
        //裝載文件和目錄圖標(biāo)
        try {
            dirIcon = Image.createImage("/folder.png");
        } catch (IOException e) {
            dirIcon = null;
        }
        try {
            fileIcon = Image.createImage("/file.png");
        } catch (IOException e) {
            fileIcon = null;
        }
        
        //設(shè)置ChoiceGroup的圖標(biāo)
        iconList = new Image[] { fileIcon, dirIcon };
    }
    
    /**
     * 必須執(zhí)行該方法后,文件瀏覽器才開始運(yùn)行
     */
    public void open() {
        try {
            showCurrDir();      //顯示目錄和文件
        } catch (SecurityException e) {
            //如果有安全限制,則執(zhí)行下面的代碼
            
            Alert alert = new Alert("錯(cuò)誤",
                    "您沒有權(quán)限訪問這個(gè)受限制的API",
                    null, AlertType.ERROR);
            alert.setTimeout(Alert.FOREVER);
            Form form = new Form("不能訪問FileConnection");
            form.append(new StringItem(null,
                    "以當(dāng)前的權(quán)限,MIDlet不能夠訪問受限制的API,請(qǐng)給MIDlet簽名"
                    + "或者運(yùn)行在其他的安全域上"));
            form.addCommand(cmdExit);
            form.setCommandListener(this);
            Display.getDisplay(feInstance).setCurrent(alert, form);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    
    /**
     * 顯示當(dāng)前目錄中的文件和目錄列表
     */
    void showCurrDir() {
        Enumeration e;
        FileConnection currDir = null;
        List browser;
        try {
            if (currDirName.equals(ROOT)) {
                e = FileSystemRegistry.listRoots();
                browser = new List(currDirName, List.IMPLICIT);
            } else {
                currDir = (FileConnection)Connector.open("file://localhost/" +
                        currDirName);
                e = currDir.list();
                browser = new List(currDirName, List.IMPLICIT);
                
                //如果不是根目錄,就添加父目錄
                browser.append(FATHER_FOLDER, dirIcon);
            }
            
            while (e.hasMoreElements()) {
                String fileName = (String)e.nextElement();
                if (fileName.charAt(fileName.length()-1) == FOLDER_END_CHAR) {
                    //增加目錄
                    browser.append(fileName, dirIcon);
                } else {
                    //增加文件
                    browser.append(fileName, fileIcon);
                }
            }
            
            browser.setSelectCommand(cmdView);
            //根目錄不能添加下面這些命令按鈕
            if (!ROOT.equals(currDirName)) {
                browser.addCommand(cmdCreate);
                browser.addCommand(cmdProperty);
                browser.addCommand(cmdDelete);
                browser.addCommand(cmdCopy);
                browser.addCommand(cmdCut);
                browser.addCommand(cmdPaste);
            }
            browser.addCommand(cmdExit);
            browser.setCommandListener(this);
            
            if (currDir != null) {
                currDir.close();
            }
            
            display.setCurrent(browser);
        } catch (IOException ioe) {
            ioe.printStackTrace();
        }
    }
    
    /**
     * 進(jìn)入其他目錄
     * <p>
     * @param fileName 要進(jìn)入的目錄
     */
    void traverseDirectory(String fileName) {
        if (currDirName.equals(ROOT)) {
            if (fileName.equals(FATHER_FOLDER)) {
                //確保根目錄為頂級(jí)目錄
                return;
            }
            currDirName = fileName;
        } else if (fileName.equals(FATHER_FOLDER)) {
            //返回上級(jí)目錄
            int i = currDirName.lastIndexOf(FOLDER_END_CHAR,
                    currDirName.length()-2);
            if (i != -1) {
                //獲得父ss目錄名字
                currDirName = currDirName.substring(0, i+1);
            } else {
                currDirName = ROOT;            //根目錄
            }
        } else {
            currDirName = currDirName + fileName;
        }
        showCurrDir();
    }
    
    /**
     * 在創(chuàng)建一個(gè)文件或者文件夾時(shí),顯示一個(gè)窗口用于輸入名字和選擇類型
     */
    void showCreateFileForm() {
        Form frmCreateor = new Form("創(chuàng)建文件/文件夾");
        nameInput = new TextField("請(qǐng)輸入文件名", null, 256, TextField.ANY);
        typeInput = new ChoiceGroup("請(qǐng)選擇文件類型", Choice.EXCLUSIVE,
                typeList, iconList);
        frmCreateor.append(nameInput);
        frmCreateor.append(typeInput);
        frmCreateor.addCommand(cmdCreateOK);
        frmCreateor.addCommand(cmdBack);
        frmCreateor.addCommand(cmdExit);
        frmCreateor.setCommandListener(this);
        display.setCurrent(frmCreateor);
    }
    
    
    
    /**
     * 顯示選擇的文件內(nèi)容
     * <p>
     * @param fileName 要顯示的文件名
     */
    void showFile(String fileName) {
        try {
            FileConnection fc = (FileConnection)
            Connector.open("file://localhost/" + currDirName + fileName);
            if (!fc.exists()) {
                throw new IOException("文件不存在");
            }
            
            InputStream fis = fc.openInputStream();
            byte[] b = new byte[MAX_FILE_LENGTH];
            
            int length = fis.read(b, 0, MAX_FILE_LENGTH);
            
            fis.close();
            fc.close();
            
            TextBox tbViewer = new TextBox("查看文件: " + fileName,
                    null, MAX_FILE_LENGTH,
                    TextField.ANY | TextField.UNEDITABLE);
            
            tbViewer.addCommand(cmdBack);
            tbViewer.addCommand(cmdExit);
            tbViewer.setCommandListener(this);
            
            if (length > 0) {
                tbViewer.setString(new String(b, 0, length));
            }
            
            display.setCurrent(tbViewer);
        } catch (Exception e) {
            Alert alert = new Alert("錯(cuò)誤!",
                    "不能訪問目錄 " + currDirName +
                    " 中的文件 " + fileName +
                    "\n發(fā)生異常:" + e.toString(),
                    null,
                    AlertType.ERROR);
            alert.setTimeout(Alert.FOREVER);
            display.setCurrent(alert);
        }
        
    }
    
    /**
     * 顯示目錄或者文件的屬性
     * <p>
     * @param fileName 要查看屬性的文件或者目錄
     */
    void showPropertyerties(String fileName) {
        try {
            if (fileName.equals(FATHER_FOLDER)) {
                return;
            }
            
            FileConnection fc = (FileConnection)Connector.open(
                    "file://localhost/" + currDirName + fileName);
            
            if (!fc.exists()) {
                throw new IOException("文件不存在");
            }
            
            Form frmPropertys = new Form("cmdPropertyerties: " + fileName);
            ChoiceGroup attrs = new ChoiceGroup("屬性:", Choice.MULTIPLE,
                    attrList, null);
            
            attrs.setSelectedFlags(new boolean[] {fc.canRead(),
                    fc.canWrite(),
                    fc.isHidden()}
            );
            
            frmPropertys.append(new StringItem("位置:", currDirName));
            frmPropertys.append(new StringItem("類型:",
                    fc.isDirectory() ? "文件夾": "文件"));
            frmPropertys.append(new StringItem("文件大小:",
                    String.valueOf(fc.fileSize())));
            frmPropertys.append(new StringItem("修改時(shí)間:",
                    formatTime(fc.lastModified())));
            frmPropertys.append(attrs);
            
            frmPropertys.addCommand(cmdBack);
            frmPropertys.addCommand(cmdExit);
            frmPropertys.setCommandListener(this);
            
            fc.close();
            

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品福利一区二区三区av | 2024国产精品| 成人av在线一区二区| 一个色在线综合| 久久色.com| 91精品国产欧美日韩| 99精品黄色片免费大全| 国内精品久久久久影院色| 亚洲韩国一区二区三区| 国产精品素人一区二区| 精品国产一区a| 欧美男男青年gay1069videost| 高清shemale亚洲人妖| 美国三级日本三级久久99| 亚洲一级在线观看| 国产精品国产精品国产专区不蜜 | 亚洲午夜私人影院| 国产精品网站在线观看| 久久人人爽人人爽| 欧美一区二区三区色| 在线亚洲一区观看| 成人午夜电影小说| 精品一区二区影视| 日本成人在线电影网| 亚洲不卡av一区二区三区| 亚洲裸体xxx| 国产精品久久看| 国产女人aaa级久久久级| 精品国产凹凸成av人网站| 日韩欧美一级在线播放| 91精品国产福利| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 成人精品免费网站| 成人综合在线观看| 丁香五精品蜜臀久久久久99网站 | 欧美aaaaa成人免费观看视频| 一区二区三区在线免费观看| 亚洲视频在线观看一区| 亚洲欧洲国产日韩| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 国产日韩三级在线| 国产色产综合色产在线视频| 久久精品人人爽人人爽| 中文字幕精品一区| 亚洲欧洲国产专区| 一区二区在线观看免费| 亚洲一区视频在线| 午夜一区二区三区在线观看| 天堂蜜桃91精品| 久久99精品久久久久久| 国产成人一级电影| 成人永久免费视频| 色综合夜色一区| 91久久精品一区二区三区| 在线观看中文字幕不卡| 欧美疯狂性受xxxxx喷水图片| 欧美久久久一区| 日韩亚洲电影在线| 久久久久成人黄色影片| 国产精品丝袜黑色高跟| 亚洲精品一二三四区| 无码av免费一区二区三区试看| 美女一区二区久久| 成人晚上爱看视频| 欧美在线一二三| 欧美一级久久久| 国产亚洲欧美在线| 亚洲色图视频网站| 日韩精品91亚洲二区在线观看| 国产一区在线观看视频| av高清久久久| 欧美一级精品在线| 欧美高清在线精品一区| 亚洲综合免费观看高清完整版在线| 香蕉久久夜色精品国产使用方法| 精油按摩中文字幕久久| www.在线欧美| 制服视频三区第一页精品| 国产午夜三级一区二区三| 亚洲狼人国产精品| 狠狠色综合日日| 色哟哟一区二区| wwwwxxxxx欧美| 亚洲一区二区四区蜜桃| 激情久久五月天| 日本高清不卡在线观看| 久久综合国产精品| 亚洲在线一区二区三区| 国产高清亚洲一区| 欧美色图第一页| 国产三级一区二区三区| 性做久久久久久久免费看| www.性欧美| 久久在线免费观看| 午夜成人免费电影| av在线不卡电影| 日韩欧美亚洲一区二区| 一区二区三区视频在线观看| 国内偷窥港台综合视频在线播放| 91福利视频网站| 国产精品天干天干在观线| 久久精品国产第一区二区三区| 91传媒视频在线播放| 国产日韩三级在线| 精品一区二区三区不卡 | 欧美肥妇bbw| 亚洲欧洲综合另类| 成人一区二区三区在线观看| 日韩欧美一区在线| 首页欧美精品中文字幕| 91麻豆精品秘密| 中文字幕欧美日本乱码一线二线| 日韩国产欧美一区二区三区| 色av成人天堂桃色av| 中文字幕不卡一区| 国产乱码精品一区二区三区av| 91精品国产黑色紧身裤美女| 亚洲国产一区二区三区青草影视| 波多野结衣一区二区三区| 国产欧美精品在线观看| 精品亚洲国产成人av制服丝袜 | 成人永久免费视频| 久久亚区不卡日本| 寂寞少妇一区二区三区| 337p亚洲精品色噜噜| 丝袜美腿亚洲一区二区图片| 欧美日韩精品欧美日韩精品一综合 | 欧美日韩国产综合一区二区| 亚洲免费观看高清完整版在线观看熊 | 久久精品国产一区二区三区免费看| 色94色欧美sute亚洲线路二| 亚洲欧美激情视频在线观看一区二区三区 | www.亚洲激情.com| 国产精品国产三级国产aⅴ中文| 成人不卡免费av| 欧美性色欧美a在线播放| 久久综合久久99| 日韩不卡在线观看日韩不卡视频| 欧美福利视频导航| 日韩电影在线观看网站| 欧美一区二区三区四区视频 | 亚洲一二三区在线观看| 欧洲av在线精品| 亚洲一区免费在线观看| 欧美日韩在线不卡| 日韩电影在线观看电影| 日韩精品一区二区三区四区视频| 国产综合久久久久久鬼色 | 国产欧美日韩亚州综合| 本田岬高潮一区二区三区| 亚洲女女做受ⅹxx高潮| 欧美日韩在线三区| 美美哒免费高清在线观看视频一区二区| 91精品国产91久久久久久一区二区| 美女任你摸久久 | 日韩精品一级二级 | 国产精品久久久久影视| 91美女在线视频| 亚洲h精品动漫在线观看| 欧美一级精品在线| 国产凹凸在线观看一区二区| 亚洲精品自拍动漫在线| 91麻豆精品国产| 国产一区二区三区蝌蚪| 亚洲欧美综合网| 欧美日韩国产综合一区二区 | 一区二区三区在线免费视频| 精品1区2区3区| 韩国欧美国产1区| 国产精品三级在线观看| 日本韩国视频一区二区| 蜜桃久久久久久| 国产精品久久久久久久久图文区 | av在线综合网| 日韩精品高清不卡| 亚洲国产精品二十页| 欧美另类videos死尸| 国产精品一线二线三线| 亚洲一区二区综合| 久久久久久久免费视频了| 在线亚洲免费视频| 国产精品一级片| 午夜日韩在线电影| 中文字幕在线不卡| 日韩精品中文字幕在线不卡尤物| 白白色 亚洲乱淫| 久久 天天综合| 亚洲国产毛片aaaaa无费看| 久久精品一区蜜桃臀影院| 色婷婷av一区二区三区之一色屋| 免费在线看一区| 一区二区三区资源| 国产三级精品三级| 欧美一区二区成人6969| 色综合色狠狠天天综合色| 精品中文字幕一区二区小辣椒| 一区二区日韩av| 久久久91精品国产一区二区精品| 欧美日本韩国一区| 色噜噜夜夜夜综合网|