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

📄 directorylistset.java

📁 Java写的文本编辑器
💻 JAVA
字号:
/* * DirectoryListSet.java - Directory list matcher * Copyright (C) 1999, 2000 Slava Pestov * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. */package org.gjt.sp.jedit.search;import gnu.regexp.RE;import java.io.*;import java.util.Vector;import org.gjt.sp.jedit.*;import org.gjt.sp.util.Log;/** * Recursive directory search. * @author Slava Pestov * @version $Id: DirectoryListSet.java,v 1.1.1.1 2001/09/02 05:37:55 spestov Exp $ */public class DirectoryListSet extends BufferListSet{	public DirectoryListSet(String directory, String glob, boolean recurse)	{		super(listFiles(directory,glob,recurse));		this.directory = directory;		this.glob = glob;		this.recurse = recurse;	}	public String getDirectory()	{		return directory;	}	public String getFileFilter()	{		return glob;	}	public boolean isRecursive()	{		return recurse;	}	/**	 * Returns the BeanShell code that will recreate this file set.	 * @since jEdit 2.7pre3	 */	public String getCode()	{		return "new DirectoryListSet(\"" + MiscUtilities.charsToEscapes(directory)			+ "\",\"" + MiscUtilities.charsToEscapes(glob) + "\","			+ recurse + ")";	}	// private members	private String directory;	private String glob;	private boolean recurse;	/**	 * One day this might become public and move to MiscUtilities...	 */	private static Vector listFiles(String directory,		String glob, boolean recurse)	{		Log.log(Log.DEBUG,DirectoryListSet.class,"Searching in "			+ directory);		Vector files = new Vector(50);		RE filter;		try		{			filter = new RE(MiscUtilities.globToRE(glob));		}		catch(Exception e)		{			Log.log(Log.ERROR,DirectoryListSet.class,e);			return files;		}		listFiles(new Vector(),files,new File(directory),filter,recurse);		return files;	}	private static void listFiles(Vector stack, Vector files,		File directory, RE filter, boolean recurse)	{		if(stack.contains(directory))		{			Log.log(Log.ERROR,DirectoryListSet.class,				"Recursion in DirectoryListSet: "				+ directory.getPath());			return;		}		else			stack.addElement(directory);				String[] _files = directory.list();		if(_files == null)			return;		MiscUtilities.quicksort(_files,new MiscUtilities.StringICaseCompare());		for(int i = 0; i < _files.length; i++)		{			String name = _files[i];			File file = new File(directory,name);			if(file.isDirectory())			{				if(recurse)					listFiles(stack,files,file,filter,recurse);			}			else			{				if(!filter.isMatch(name))					continue;				Log.log(Log.DEBUG,DirectoryListSet.class,file.getPath());				String canonPath;				try				{					canonPath = file.getCanonicalPath();				}				catch(IOException io)				{					canonPath = file.getPath();				}				files.addElement(canonPath);			}		}	}}

⌨️ 快捷键说明

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