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

📄 filewalker.java

📁 java 文件下载器。可自定义
💻 JAVA
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space 
// Source File Name:   FileWalker.java

package org.pf.file;

import java.io.File;
import java.io.FilenameFilter;
import org.pf.text.StringUtil;

// Referenced classes of package org.pf.file:
//			ExtendedFileFilter, FileHandler

public class FileWalker
{

	public static final char PATTERN_SEPARATOR_CHAR = 59;
	public static final String PATTERN_SEPARATOR = ";";
	private FileHandler fileHandler;
	private boolean goOn;
	private Character digitWildcard;

	protected FileHandler getFileHandler()
	{
		return fileHandler;
	}

	protected void setFileHandler(FileHandler newValue)
	{
		fileHandler = newValue;
	}

	protected boolean getGoOn()
	{
		return goOn;
	}

	protected void setGoOn(boolean newValue)
	{
		goOn = newValue;
	}

	protected Character getDigitWildcard()
	{
		return digitWildcard;
	}

	protected void setDigitWildcard(Character newValue)
	{
		digitWildcard = newValue;
	}

	public FileWalker(FileHandler handler)
	{
		fileHandler = null;
		goOn = true;
		digitWildcard = null;
		setFileHandler(handler);
	}

	public FileWalker(FileHandler handler, char digitWildcard)
	{
		this(handler);
		setDigitWildcardChar(digitWildcard);
	}

	public long walkThrough(String dir, String pattern, boolean recursive)
	{
		ExtendedFileFilter filter = null;
		String patterns[] = null;
		setGoOn(true);
		filter = new ExtendedFileFilter();
		patterns = extractPatterns(pattern);
		for (int i = 0; i < patterns.length; i++)
		{
			String strPattern = patterns[i];
			if (hasDigitWildcard())
				filter.addPattern(strPattern, true, getDigitWildcardChar());
			else
				filter.addPattern(strPattern, true);
		}

		if (recursive)
			filter.alwaysIncludeDirectories();
		else
			filter.alwaysExcludeDirectories();
		return walkThrough(dir, ((FilenameFilter) (filter)), recursive);
	}

	public void setDigitWildcardChar(char digitWildcard)
	{
		if (digitWildcard <= 0)
			setDigitWildcard(null);
		else
			setDigitWildcard(new Character(digitWildcard));
	}

	protected long walkThrough(String dir, FilenameFilter filter, boolean recursive)
	{
		long counter = 0L;
		File directory = null;
		File file = null;
		File files[] = null;
		int index = 0;
		directory = new File(dir);
		files = directory.listFiles(filter);
		if (files == null)
			return counter;
		setGoOn(getFileHandler().directoryStart(directory, files.length));
		if (!getGoOn())
			return counter;
		index = 0;
		do
		{
			if (index >= files.length)
				break;
			file = files[index];
			if (file.isDirectory())
			{
				if (recursive)
					counter += walkThrough(file.getPath(), filter, recursive);
			} else
			{
				setGoOn(getFileHandler().handleFile(file));
				counter++;
			}
			if (!getGoOn())
				break;
			index++;
		} while (true);
		setGoOn(getFileHandler().directoryEnd(directory));
		return counter;
	}

	protected String[] extractPatterns(String pattern)
	{
		return StringUtil.current().parts(pattern, ";");
	}

	protected char getDigitWildcardChar()
	{
		if (hasDigitWildcard())
			return getDigitWildcard().charValue();
		else
			return '\0';
	}

	protected boolean hasDigitWildcard()
	{
		return getDigitWildcard() != null;
	}
}

⌨️ 快捷键说明

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