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

📄 browseriorequest.java

📁 Linux下面最好用的程序、文本编辑工具之一。
💻 JAVA
字号:
/* * BrowserIORequest.java - VFS browser I/O request * :tabSize=8:indentSize=8:noTabs=false: * :folding=explicit:collapseFolds=1: * * Copyright (C) 2000, 2003 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.browser;//{{{ Importsimport java.io.*;import org.gjt.sp.jedit.io.*;import org.gjt.sp.jedit.*;import org.gjt.sp.util.*;//}}}/** * A browser I/O request. * @author Slava Pestov * @version $Id: BrowserIORequest.java,v 1.20 2004/05/29 01:55:24 spestov Exp $ */class BrowserIORequest extends WorkRequest{	//{{{ Request types	/**	 * Directory listing I/O request.	 */	public static final int LIST_DIRECTORY = 0;	/**	 * Delete file I/O request.	 */	public static final int DELETE = 1;	/**	 * Rename file I/O request.	 */	public static final int RENAME = 2;	/**	 * Make directory I/O request.	 */	public static final int MKDIR = 3;	//}}}	//{{{ BrowserIORequest constructor	/**	 * Creates a new browser I/O request.	 * @param type The request type	 * @param browser The VFS browser instance	 * @param path1 The first path name to operate on	 * @param path2 The second path name to operate on	 * @param loadInfo A two-element array filled out by the request;	 * element 1 is the canonical path, element 2 is the file list.	 */	BrowserIORequest(int type, VFSBrowser browser,		Object session, VFS vfs, String path1, String path2,		Object[] loadInfo)	{		this.type = type;		this.browser = browser;		this.session = session;		this.vfs = vfs;		this.path1 = path1;		this.path2 = path2;		this.loadInfo = loadInfo;	} //}}}	//{{{ run() method	public void run()	{		switch(type)		{		case LIST_DIRECTORY:			listDirectory();			break;		case DELETE:			delete();			break;		case RENAME:			rename();			break;		case MKDIR:			mkdir();			break;		}	} //}}}	//{{{ toString() method	public String toString()	{		String typeString;		switch(type)		{		case LIST_DIRECTORY:			typeString = "LIST_DIRECTORY";			break;		case DELETE:			typeString = "DELETE";			break;		case RENAME:			typeString = "RENAME";			break;		case MKDIR:			typeString = "MKDIR";			break;		default:			typeString = "UNKNOWN!!!";			break;		}		return getClass().getName() + "[type=" + typeString			+ ",vfs=" + vfs + ",path1=" + path1			+ ",path2=" + path2 + "]";	} //}}}	//{{{ Private members	//{{{ Instance variables	private int type;	private VFSBrowser browser;	private Object session;	private VFS vfs;	private String path1;	private String path2;	private Object[] loadInfo;	//}}}	//{{{ listDirectory() method	private void listDirectory()	{		VFS.DirectoryEntry[] directory = null;		String[] args = { path1 };		setStatus(jEdit.getProperty("vfs.status.listing-directory",args));		String canonPath = path1;		try		{			setAbortable(true);			canonPath = vfs._canonPath(session,path1,browser);			directory = vfs._listDirectory(session,canonPath,browser);		}		catch(IOException io)		{			setAbortable(false);			Log.log(Log.ERROR,this,io);			String[] pp = { io.toString() };			VFSManager.error(browser,path1,"ioerror.directory-error",pp);		}		catch(WorkThread.Abort a)		{		}		finally		{			try			{				vfs._endVFSSession(session,browser);			}			catch(IOException io)			{				setAbortable(false);				Log.log(Log.ERROR,this,io);				String[] pp = { io.toString() };				VFSManager.error(browser,path1,"ioerror.directory-error",pp);			}		}		setAbortable(false);		loadInfo[0] = canonPath;		loadInfo[1] = directory;	} //}}}	//{{{ delete() method	private void delete()	{		try		{			setAbortable(true);			String[] args = { path1 };			setStatus(jEdit.getProperty("vfs.status.deleting",args));			try			{				path1 = vfs._canonPath(session,path1,browser);				if(!vfs._delete(session,path1,browser))					VFSManager.error(browser,path1,"ioerror.delete-error",null);			}			catch(IOException io)			{				setAbortable(false);				Log.log(Log.ERROR,this,io);				String[] pp = { io.toString() };				VFSManager.error(browser,path1,"ioerror.directory-error",pp);			}		}		catch(WorkThread.Abort a)		{		}		finally		{			try			{				vfs._endVFSSession(session,browser);			}			catch(IOException io)			{				setAbortable(false);				Log.log(Log.ERROR,this,io);				String[] pp = { io.toString() };				VFSManager.error(browser,path1,"ioerror.directory-error",pp);			}		}	} //}}}	//{{{ rename() method	private void rename()	{		try		{			setAbortable(true);			String[] args = { path1, path2 };			setStatus(jEdit.getProperty("vfs.status.renaming",args));			try			{				path1 = vfs._canonPath(session,path1,browser);				path2 = vfs._canonPath(session,path2,browser);				VFS.DirectoryEntry file = vfs._getDirectoryEntry(					session,path2,browser);				if(file != null)				{					if((OperatingSystem.isDOSDerived()						|| OperatingSystem.isMacOS())						&& path1.equalsIgnoreCase(path2))					{						// allow user to change name						// case					}					else					{						VFSManager.error(browser,path1,							"ioerror.rename-exists",							new String[] { path2 });						return;					}				}				if(!vfs._rename(session,path1,path2,browser))					VFSManager.error(browser,path1,"ioerror.rename-error",						new String[] { path2 });			}			catch(IOException io)			{				setAbortable(false);				Log.log(Log.ERROR,this,io);				String[] pp = { io.toString() };				VFSManager.error(browser,path1,"ioerror.directory-error",pp);			}		}		catch(WorkThread.Abort a)		{		}		finally		{			try			{				vfs._endVFSSession(session,browser);			}			catch(IOException io)			{				setAbortable(false);				Log.log(Log.ERROR,this,io);				String[] pp = { io.toString() };				VFSManager.error(browser,path1,"ioerror.directory-error",pp);			}		}	} //}}}	//{{{ mkdir() method	private void mkdir()	{		try		{			setAbortable(true);			String[] args = { path1 };			setStatus(jEdit.getProperty("vfs.status.mkdir",args));			try			{				path1 = vfs._canonPath(session,path1,browser);				if(!vfs._mkdir(session,path1,browser))					VFSManager.error(browser,path1,"ioerror.mkdir-error",null);			}			catch(IOException io)			{				setAbortable(false);				Log.log(Log.ERROR,this,io);				args[0] = io.toString();				VFSManager.error(browser,path1,"ioerror",args);			}		}		catch(WorkThread.Abort a)		{		}		finally		{			try			{				vfs._endVFSSession(session,browser);			}			catch(IOException io)			{				setAbortable(false);				Log.log(Log.ERROR,this,io);				String[] args = { io.toString() };				VFSManager.error(browser,path1,"ioerror",args);			}		}	} //}}}	//}}}}

⌨️ 快捷键说明

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