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

📄 filebrowser.java

📁 个人事务处理工具 一个简单的小软件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
     */    void showCurrDir() {        Enumeration e;        FileConnection currDir = null;        List browser;        try {            if (MEGA_ROOT.equals(currDirName)) {                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);                // not root - draw UP_DIRECTORY                browser.append(UP_DIRECTORY, dirIcon);            }            while (e.hasMoreElements()) {                String fileName = (String)e.nextElement();                if (fileName.charAt(fileName.length() - 1) == SEP) {                    // This is directory                    browser.append(fileName, dirIcon);                } else {                    // this is regular file                    browser.append(fileName, fileIcon);                }            }            browser.setSelectCommand(view);            //Do not allow creating files/directories beside root            if (!MEGA_ROOT.equals(currDirName)) {                browser.addCommand(prop);                browser.addCommand(creat);                browser.addCommand(delete);            }            browser.addCommand(exit);            browser.setCommandListener(this);            if (currDir != null) {                currDir.close();            }            Display.getDisplay(this).setCurrent(browser);        } catch (IOException ioe) {            ioe.printStackTrace();        }    }    void traverseDirectory(String fileName) {        /* In case of directory just change the current directory         * and show it         */        if (currDirName.equals(MEGA_ROOT)) {            if (fileName.equals(UP_DIRECTORY)) {                // can not go up from MEGA_ROOT                return;            }            currDirName = fileName;        } else if (fileName.equals(UP_DIRECTORY)) {            // Go up one directory            int i = currDirName.lastIndexOf(SEP, currDirName.length() - 2);            if (i != -1) {                currDirName = currDirName.substring(0, i + 1);            } else {                currDirName = MEGA_ROOT;            }        } else {            currDirName = currDirName + fileName;        }        showCurrDir();    }    void showFile(String fileName) {        try {            FileConnection fc =                (FileConnection)Connector.open("file://localhost/" + currDirName + fileName);            if (!fc.exists()) {                throw new IOException("File does not exists");            }            InputStream fis = fc.openInputStream();            byte[] b = new byte[1024];            int length = fis.read(b, 0, 1024);            fis.close();            fc.close();            TextBox viewer =                new TextBox("View File: " + fileName, null, 1024,                    TextField.ANY | TextField.UNEDITABLE);            viewer.addCommand(back);            viewer.addCommand(exit);            viewer.setCommandListener(this);            if (length > 0) {                viewer.setString(new String(b, 0, length));            }            Display.getDisplay(this).setCurrent(viewer);        } catch (Exception e) {            Alert alert =                new Alert("Error!",                    "Can not access file " + fileName + " in directory " + currDirName +                    "\nException: " + e.getMessage(), null, AlertType.ERROR);            alert.setTimeout(Alert.FOREVER);            Display.getDisplay(this).setCurrent(alert);        }    }    void deleteFile(String fileName) {        try {            FileConnection fc = (FileConnection)Connector.open("file:///" + currDirName + fileName);            fc.delete();        } catch (Exception e) {            Alert alert =                new Alert("Error!",                    "Can not access/delete file " + fileName + " in directory " + currDirName +                    "\nException: " + e.getMessage(), null, AlertType.ERROR);            alert.setTimeout(Alert.FOREVER);            Display.getDisplay(this).setCurrent(alert);        }    }    void showProperties(String fileName) {        try {            if (fileName.equals(UP_DIRECTORY)) {                return;            }            FileConnection fc =                (FileConnection)Connector.open("file://localhost/" + currDirName + fileName);            if (!fc.exists()) {                throw new IOException("File does not exists");            }            Form props = new Form("Properties: " + fileName);            ChoiceGroup attrs = new ChoiceGroup("Attributes:", Choice.MULTIPLE, attrList, null);            attrs.setSelectedFlags(new boolean[] { fc.canRead(), fc.canWrite(), fc.isHidden() });            props.append(new StringItem("Location:", currDirName));            props.append(new StringItem("Type: ", fc.isDirectory() ? "Directory" : "Regular File"));            props.append(new StringItem("Modified:", myDate(fc.lastModified())));            props.append(attrs);            props.addCommand(back);            props.addCommand(exit);            props.setCommandListener(this);            fc.close();            Display.getDisplay(this).setCurrent(props);        } catch (Exception e) {            Alert alert =                new Alert("Error!",                    "Can not access file " + fileName + " in directory " + currDirName +                    "\nException: " + e.getMessage(), null, AlertType.ERROR);            alert.setTimeout(Alert.FOREVER);            Display.getDisplay(this).setCurrent(alert);        }    }    void createFile() {        Form creator = new Form("New File");        nameInput = new TextField("Enter Name", null, 256, TextField.ANY);        typeInput = new ChoiceGroup("Enter File Type", Choice.EXCLUSIVE, typeList, iconList);        creator.append(nameInput);        creator.append(typeInput);        creator.addCommand(creatOK);        creator.addCommand(back);        creator.addCommand(exit);        creator.setCommandListener(this);        Display.getDisplay(this).setCurrent(creator);    }    void createFile(String newName, boolean isDirectory) {        try {            FileConnection fc = (FileConnection)Connector.open("file:///" + currDirName + newName);            if (isDirectory) {                fc.mkdir();            } else {                fc.create();            }            showCurrDir();        } catch (Exception e) {            String s = "Can not create file '" + newName + "'";            if ((e.getMessage() != null) && (e.getMessage().length() > 0)) {                s += ("\n" + e);            }            Alert alert = new Alert("Error!", s, null, AlertType.ERROR);            alert.setTimeout(Alert.FOREVER);            Display.getDisplay(this).setCurrent(alert);            // Restore the commands that were removed in commandAction()            Display.getDisplay(this).getCurrent().addCommand(creatOK);            Display.getDisplay(this).getCurrent().addCommand(back);        }    }    private String myDate(long time) {        Calendar cal = Calendar.getInstance();        cal.setTime(new Date(time));        StringBuffer sb = new StringBuffer();        sb.append(cal.get(Calendar.HOUR_OF_DAY));        sb.append(':');        sb.append(cal.get(Calendar.MINUTE));        sb.append(':');        sb.append(cal.get(Calendar.SECOND));        sb.append(',');        sb.append(' ');        sb.append(cal.get(Calendar.DAY_OF_MONTH));        sb.append(' ');        sb.append(monthList[cal.get(Calendar.MONTH)]);        sb.append(' ');        sb.append(cal.get(Calendar.YEAR));        return sb.toString();    }}

⌨️ 快捷键说明

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