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

📄 fsofilenamefilter.java

📁 对学习 VC有所帮助的几个例子
💻 JAVA
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi 
// Source File Name:   FsoFilenameFilter.java

package com.jspsmart.file;

import java.io.File;
import java.io.FilenameFilter;

public class FsoFilenameFilter
    implements FilenameFilter
{

    protected String originalFilter;
    protected String normalizedFilter;

    public FsoFilenameFilter(String s)
    {
        StringBuffer stringbuffer = new StringBuffer();
        for(int i = 0; i < s.length(); i++)
            if(s.charAt(i) != '*' || stringbuffer.length() <= 0 || stringbuffer.charAt(stringbuffer.length() - 1) != '*')
                stringbuffer.append(s.charAt(i));

        normalizedFilter = stringbuffer.toString();
        originalFilter = s;
    }

    public String getFilter()
    {
        return originalFilter;
    }

    public boolean accept(File file, String s)
    {
        if(normalizedFilter.length() > 0)
            return accept(s, 0, 0);
        else
            return true;
    }

    protected boolean accept(String s, int i, int j)
    {
        for(; j < normalizedFilter.length(); j++)
            switch(normalizedFilter.charAt(j))
            {
            case 63: // '?'
                if(i < s.length())
                    i++;
                else
                    return false;
                break;

            case 42: // '*'
                if(j == normalizedFilter.length() - 1)
                    return true;
                char c = normalizedFilter.charAt(j + 1);
                if(c == '?')
                {
                    for(int k = i; k < s.length(); k++)
                        if(accept(s, k, j + 1))
                            return true;

                    return false;
                }
                for(int l = s.indexOf(c, i); l < s.length() && l != -1; l = s.indexOf(c, l + 1))
                    if(accept(s, l, j + 1))
                        return true;

                return false;

            default:
                if(i < s.length() && normalizedFilter.charAt(j) == s.charAt(i))
                    i++;
                else
                    return false;
                break;
            }

        return i == s.length();
    }
}

⌨️ 快捷键说明

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