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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? virtualdirectory.java

?? Ftp服務1.0
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
package ranab.io;

import java.io.File;
import java.io.Writer;
import java.io.IOException;
import java.io.Serializable;
import java.text.DecimalFormat;
import java.util.Date;
import java.util.StringTokenizer;

import ranab.io.FileRegularFilter;
import ranab.util.DateUtils;


/**
 * This class is responsible to handle all virtual directory activities.
 *
 * @author <a href="mailto:rana_b@yahoo.com">Rana Bhattacharyya</a>
 */
public
class VirtualDirectory implements Serializable {
    
    private final static String NEWLINE  = "\r\n";
    private final static String DELIM    = " ";
    
    private String mstRoot        = "/";
    private String mstCurrDir     = "/";
    
    private boolean mbWritePerm   = false;
    
    
    /**
     * Default constructor does nothing
     */
    public VirtualDirectory() {
    }
        
    /**
     * Set write permission.
     */
    public void setWritePermission(boolean perm) {
        mbWritePerm = perm;
    }
    
    /**
     * Set root directory. Root directory string will always
     * end with '/'.
     */
    public void setRootDirectory(File root) {

       if(root == null) {
           root = new File("/");
       }
       mstRoot = normalizeSeparateChar(root.getAbsolutePath());
        
       // if not ends with '/' - add one
       if(mstRoot.charAt(mstRoot.length()-1) != '/') {
           mstRoot = mstRoot + '/';
       }
       mstCurrDir = "/";
    }
    
    /**
     * Set root directory.
     */
    public void setRootDirectory(String root) throws IOException {
       //File rootFile = new File(root).getCanonicalFile();
       //setRootDirectory(rootFile);
    
       mstRoot = normalizeSeparateChar(root);
        
       // if not ends with '/' - add one
       if(mstRoot.charAt(mstRoot.length()-1) != '/') {
           mstRoot = mstRoot + '/';
       }
       mstCurrDir = "/";
    }
    
    /**
     * Get write permission in this system
     */
    public boolean getWritePermission() {
        return mbWritePerm;
    }
        
    /**
     * Get current working directory.
     */
    public String getCurrentDirectory() {
        return mstCurrDir;
    }
    
    
    /**
     * Get root directory.
     */
    public String getRootDirectory() {
        return mstRoot;
    }
    
    
    /**
     * Get physical name (wrt the machine root).
     */
    public String getPhysicalName(String virtualName) {
        virtualName = normalizeSeparateChar(virtualName);
        return replaceDots(virtualName);
    }
    
    
    /**
     * Get virtual name (wrt the virtual root). 
     * The return value will never end with '/' unless it is '/'. 
     */
    public String getAbsoluteName(String virtualName) {
        virtualName = normalizeSeparateChar(virtualName);
        String physicalName = replaceDots(virtualName);
        
        String absoluteName = physicalName.substring(mstRoot.length()-1).trim();
        return removeLastSlash(absoluteName);
    }
    
    
    /**
     * Get virtual name (wrt the virtual root). The virtual
     * name will never end with '/' unless it is '/'. 
     */
    public String getVirtualName(String physicalName) {
        physicalName = normalizeSeparateChar(physicalName);
        if (!physicalName.startsWith(mstRoot)) {
            return null;
        }
        
        String virtualName = physicalName.substring(mstRoot.length()-1).trim();
        return removeLastSlash(virtualName);
    }


    /**
     * Change directory. The current directory will never have '/'
     * at the end unless it is '/'.
     * @param dirName change the current working directory.
     * @return true if success
     */
    public boolean changeDirectory(String virtualDir) {
        
        String physcialDir = getPhysicalName(virtualDir);
        if (physcialDir.equals("")) {
            physcialDir = "/";
        }
        
        File dirFl = new File(physcialDir);
        if (dirFl.exists() && dirFl.isDirectory()) {
            mstCurrDir = physcialDir.substring(mstRoot.length() - 1).trim();
            mstCurrDir = removeLastSlash(mstCurrDir);
            return true;
        }
        
        return false;
    }

    
    /**
     * Check read permission.
     */
    public boolean hasReadPermission(String fileName, boolean bPhysical) {
        if(bPhysical) {
            fileName = normalizeSeparateChar(fileName);
        }
        else {
            fileName = getPhysicalName(fileName);
        }

        if(!fileName.startsWith(mstRoot)) {
            return false;
        }

        return new File(fileName).canRead();
    }
    
    
    /**
     * Chech file write/delete permission.
     */
    public boolean hasWritePermission(String fileName, boolean bPhysical) {

        // no write permission
        if(!mbWritePerm) {
            return false;
        }
        
        // if virtual name - get the physical name
        if(bPhysical) {
            fileName = normalizeSeparateChar(fileName);
        }
        else {
            fileName = getPhysicalName(fileName);
        }

        if(!fileName.startsWith(mstRoot)) {
            return false;
        }

        return new File(fileName).canWrite();
    }


    /**
     * Check file create permission.
     */
    public boolean hasCreatePermission(String fileName, boolean bPhysical) {
        
        // no write permission
        if(!mbWritePerm) {
            return false;
        }
        
        // if virtual name - get the physical name
        if(bPhysical) {
            fileName = normalizeSeparateChar(fileName);
        }
        else {
            fileName = getPhysicalName(fileName);
        }
        
        return fileName.startsWith(mstRoot);
    }
    
    
    /**
     * Print file list. Detail listing.
     * <pre>
     *   -a : display all (including hidden files)
     * </pre>
     * @return true if success
     */
    public boolean printList(String argument, Writer out) throws IOException {

        String lsDirName = "./";
        String options = "";
        String pattern   = "*";

        // get options, directory name and pattern
        if(argument != null) {
            argument = argument.trim();
            StringBuffer optionsSb = new StringBuffer(4);
            StringTokenizer st = new StringTokenizer(argument, " ");
            while(st.hasMoreTokens()) {
                String token = st.nextToken();
                if(token.charAt(0) == '-') {
                   if (token.length() > 1) {
                       optionsSb.append(token.substring(1));
                   }
                }
                else {
                   lsDirName = token;
                }
            }
            options = optionsSb.toString();
        }
        
        // check options
        boolean bAll = options.indexOf('a') != -1;
        boolean bDetail = options.indexOf('l') != -1;        
        
        // check pattern
        lsDirName = getPhysicalName(lsDirName);
        int slashIndex = lsDirName.lastIndexOf('/');
        if( (slashIndex != -1) && (slashIndex != (lsDirName.length() -1)) ) {
            pattern = lsDirName.substring(slashIndex+1);
            lsDirName = lsDirName.substring(0, slashIndex+1);
        }
        
        // check directory
        File lstDirObj = new File(lsDirName);
        if(!lstDirObj.exists()) {
            return false;
        }
        if(!lstDirObj.isDirectory()) {
            return false;
        }
        
        // get file list
        File flLst[];
        if ( (pattern == null) || pattern.equals("*") || pattern.equals("") ) {
            flLst = lstDirObj.listFiles();
        }
        else {
            flLst = lstDirObj.listFiles(new FileRegularFilter(pattern));
        }

        // print file list
        if(flLst != null) {
            for(int i=0; i<flLst.length; i++) {
                if ( (!bAll) && flLst[i].isHidden() ) {
                    continue;
                }
                printLine(flLst[i], out);
                out.write(NEWLINE);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美美女直播网站| 国产精品国产三级国产aⅴ入口 | 91同城在线观看| 欧美日韩一区中文字幕| 日本一区二区高清| 日韩精品亚洲一区二区三区免费| 国产成人av一区| 欧美成人猛片aaaaaaa| 亚洲一区视频在线| 99久久久精品| 国产三区在线成人av| 奇米精品一区二区三区在线观看 | 欧美日韩一级大片网址| 中文字幕免费不卡| 久久99国产精品免费| 欧美日韩久久久久久| 中文字幕一区在线| 国产精品一区二区无线| 精品国产1区二区| 日韩—二三区免费观看av| 一本到一区二区三区| 亚洲国产经典视频| 国产毛片精品视频| 日韩女优电影在线观看| 婷婷夜色潮精品综合在线| 91麻豆免费观看| 国产精品九色蝌蚪自拍| 91蜜桃在线免费视频| 久久综合资源网| 国产精品影视网| 国产三级久久久| 国产一区二区三区四| 久久久国产一区二区三区四区小说 | 婷婷综合久久一区二区三区| 欧美伊人久久久久久午夜久久久久| 国产精品久久久久久久久果冻传媒| 国产乱人伦偷精品视频不卡 | 久久国产成人午夜av影院| 日韩一区二区精品在线观看| 日韩va亚洲va欧美va久久| 欧美伦理电影网| 看片的网站亚洲| 久久日一线二线三线suv| 国模娜娜一区二区三区| 久久久久久97三级| 不卡在线观看av| 一区二区在线电影| 欧美片网站yy| 免费看日韩精品| 久久精品人人做人人爽97| 成人av网站在线观看| 综合久久国产九一剧情麻豆| 91久久国产综合久久| 亚洲国产精品久久不卡毛片| 欧美一卡二卡三卡| 国产一区二区三区香蕉| 国产精品高清亚洲| 欧美日韩一区二区三区四区五区| 日韩福利电影在线观看| 久久久久久久久免费| 69堂亚洲精品首页| 经典三级视频一区| 国产精品久久久久精k8| 欧美日韩视频在线一区二区| 蜜桃精品视频在线| 日本一区二区成人在线| 欧美日韩一区二区在线观看视频 | 成人18精品视频| 亚洲亚洲人成综合网络| 久久一留热品黄| 一本色道久久加勒比精品| 麻豆国产精品官网| 国产精品国产自产拍高清av | 亚洲成人免费视频| 久久人人97超碰com| 欧洲色大大久久| 国产经典欧美精品| 亚洲与欧洲av电影| 国产喷白浆一区二区三区| 欧美日韩久久一区| 91在线码无精品| 国产中文字幕精品| 天天综合天天综合色| 亚洲男人电影天堂| 中文字幕av资源一区| 欧美一区日韩一区| 91免费版在线| 懂色中文一区二区在线播放| 日韩综合在线视频| 综合激情成人伊人| 国产欧美日韩激情| 欧美一区三区四区| 欧美日韩一级片网站| 一本色道久久综合亚洲91| 国产精品夜夜爽| 美国毛片一区二区三区| 午夜免费久久看| 亚洲一区二区在线免费看| 中文字幕一区视频| 国产亚洲成aⅴ人片在线观看| 这里只有精品电影| 欧美中文字幕亚洲一区二区va在线| 国产91丝袜在线播放0| 麻豆91在线观看| 日日摸夜夜添夜夜添精品视频| 亚洲色图欧美激情| 成人欧美一区二区三区视频网页| 久久女同性恋中文字幕| 日韩欧美亚洲国产另类| 91精品国产综合久久精品性色| 色综合天天综合狠狠| 99re热这里只有精品免费视频| 国产一区亚洲一区| 久久精品国产亚洲aⅴ| 久久超碰97中文字幕| 蜜臀久久99精品久久久久宅男| 五月激情综合网| 日韩中文字幕一区二区三区| 国产在线精品不卡| 久久91精品国产91久久小草| 奇米色一区二区三区四区| 青青草原综合久久大伊人精品| 日韩和欧美一区二区三区| 天天操天天干天天综合网| 亚洲电影第三页| 日韩激情av在线| 精品亚洲国产成人av制服丝袜| 麻豆精品视频在线观看| 国产一区不卡精品| 国产69精品久久99不卡| av在线播放不卡| 色呦呦国产精品| 欧美女孩性生活视频| 日韩精品一区二区三区中文不卡| 久久婷婷国产综合国色天香| 亚洲国产成人在线| 亚洲久本草在线中文字幕| 亚洲一二三四久久| 琪琪久久久久日韩精品| 国产大陆亚洲精品国产| 99久久综合色| 欧美日韩黄色一区二区| 欧美成人在线直播| 国产精品国产三级国产aⅴ入口 | 青青草国产成人av片免费| 极品少妇xxxx偷拍精品少妇| 福利一区二区在线| 在线精品视频一区二区三四| 欧美精品日韩精品| 久久人人爽人人爽| 亚洲午夜久久久久久久久久久| 久久精品免费观看| 99久久国产综合色|国产精品| 欧美日韩国产一区| 国产亚洲1区2区3区| 亚洲成人在线网站| 国产99久久久国产精品潘金| 在线欧美日韩国产| 久久久久国产精品厨房| 亚洲一区在线观看视频| 国产精品99久久久久| 欧美视频在线一区二区三区 | 欧美日韩亚洲综合在线 | 成人毛片视频在线观看| 91福利国产成人精品照片| 精品日韩一区二区| 亚洲国产视频在线| 欧美精品v国产精品v日韩精品| 欧美一区二区三区公司| ...xxx性欧美| 国产最新精品精品你懂的| 欧美色视频一区| 一区在线观看视频| 狠狠色狠狠色合久久伊人| 欧洲在线/亚洲| 国产精品久久久久久久第一福利 | 日韩精品中文字幕一区| 亚洲精品乱码久久久久久久久| 精品综合免费视频观看| 在线播放91灌醉迷j高跟美女| 综合色天天鬼久久鬼色| 粉嫩嫩av羞羞动漫久久久| 日韩欧美一区二区视频| 亚洲国产精品自拍| 色偷偷久久人人79超碰人人澡 | 欧美一区二区三区精品| 亚洲一区二区三区美女| 99精品视频一区二区三区| 久久久亚洲精品石原莉奈| 另类小说欧美激情| 欧美高清www午色夜在线视频| 一区在线观看免费| 99综合电影在线视频| 国产色爱av资源综合区| 国产伦精品一区二区三区免费 | 国内不卡的二区三区中文字幕| 欧美日韩国产首页| 亚洲国产一区视频| 精品1区2区3区| 日韩国产一二三区|