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

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

?? scriptedpollmanager.java

?? 一個簡易的輪訓小程序 哈哈哈哈哈哈后 嘿嘿嘿嘿黑誒
?? JAVA
字號:
package org.sadun.util.polling;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.text.DateFormat;
import java.util.Date;

import org.sadun.util.EnvironmentVariables;

/**
 * A {@link PollManager PollManager} that hands over the actual 
 * handling of polling events to an external script.
 * <p>
 * The scripts are executed by invoking <tt>System.execute()</tt>
 * with a given shell command.
 * <p>
 * By default, win32 invocation uses <tt>%COMMSPEC%</tt>
 * and Unix invocation uses <tt>/bin/sh</tt>. 
 * 
 * @version 1.0
 * @author cris
 */
public class ScriptedPollManager extends BasePollManager {
	
	private String [] shellCmd;
	private String scriptPath;
	private DirectoryPoller poller;
	
	public ScriptedPollManager(DirectoryPoller poller, 
	                            String [] shellCmd, String scriptPath) {
	    this.poller=poller;
		this.shellCmd=shellCmd;
		this.scriptPath=scriptPath;
	}
	
	public ScriptedPollManager(DirectoryPoller poller, 
		                       String scriptPath) throws UnsupportedOperationException {
		this.poller=poller;		                       	
		this.scriptPath=scriptPath;
		String osName=System.getProperty("os.name");
		if (osName.startsWith("Windows")) {
			String comSpec=EnvironmentVariables.getInstance().getEnv("ComSpec");
			if (comSpec==null) throw new UnsupportedOperationException("ComSpec environment variable not defined");
			this.shellCmd=new String[2];
			this.shellCmd[0]=comSpec;
			this.shellCmd[1]="/C";
		} else if (		
		   osName.equals("Linux") ||
		   osName.equals("Solaris") ||
		   osName.equals("HP-UX") ||
		   osName.equals("Aix") ||
		   osName.equals("FreeBSD")
		 ) {
			this.shellCmd=new String[1];
			this.shellCmd[0]="/bin/sh";
			
		}
		if (shellCmd==null) 
			throw new UnsupportedOperationException("The scripted poll manager doesn't recognize the operating system \""+osName+"\" and cannot determine the shell command to use");
	}
	
	private String composeCmdString(String []params) {
		String [] params2 = new String[params.length+shellCmd.length+1];
		System.arraycopy(shellCmd, 0, params2, 0, shellCmd.length);
		params2[shellCmd.length]=scriptPath;
		System.arraycopy(params, 0, params2, shellCmd.length+1, params.length);
		StringWriter sw = new StringWriter();
		PrintWriter pw = new PrintWriter(sw);
		for(int i=0;i<params2.length;i++) {
			pw.print(params2[i]);
			pw.print(" ");
		}
		pw.print(scriptPath);
		return sw.toString();
	}
	
    private void invoke(String []params) {
    	if (poller.isShuttingDown()) return;
		String [] params2 = new String[params.length+shellCmd.length+1];
		System.arraycopy(shellCmd, 0, params2, 0, shellCmd.length);
		params2[shellCmd.length]=scriptPath;
		System.arraycopy(params, 0, params2, shellCmd.length+1, params.length);
		try {
			if (poller.isVerbose()) {
				System.err.println("Attempting to run "+composeCmdString(params));
			}
			Process p = Runtime.getRuntime().exec(params2);
			InputStream os = p.getInputStream();
			InputStream os2 = p.getErrorStream();
			int c;
			try {
				while((c=os.read())!=-1) System.out.write(c);
			} catch(IOException e) {
				System.err.println("Problem reading script output for "+composeCmdString(params));
			}
			
			try {
				while((c=os2.read())!=-1) System.err.write(c);
			} catch(IOException e) {
				System.err.println("Problem reading script error output for "+composeCmdString(params));
			}
			
			try {
				int result = p.waitFor();
				if (result != 0) 
					System.err.println(composeCmdString(params)+" returned nonzero");
			} catch(InterruptedException e) {
				System.err.println("ScriptedPollManager interrupted while waiting for child process "+composeCmdString(params));
			}
		} catch (IOException e) {
			System.err.println("Problem invoking "+composeCmdString(params));
		}
	}
	
	public String toString() { 
		StringWriter sw = new StringWriter();
		PrintWriter pw = new PrintWriter(sw);
		pw.print("Scripted pollManager running ");
		for(int i=0;i<shellCmd.length;i++) {
			pw.print(shellCmd[i]);
			pw.print(" ");
		}
		pw.print(scriptPath);
		return sw.toString();
	}

	/**
	 * @see org.sadun.util.polling.PollManager#cycleEnded(org.sadun.util.polling.CycleEndEvent)
	 */
	public void cycleEnded(CycleEndEvent evt) {
		invoke(new String [] {
			"CycleEnded", 
			String.valueOf(evt.getTime())
			}
		);
	}

	/**
	 * @see org.sadun.util.polling.PollManager#cycleStarted(org.sadun.util.polling.CycleStartEvent)
	 */
	public void cycleStarted(CycleStartEvent evt) {
		invoke(new String [] {
			"CycleStarted", 
			String.valueOf(evt.getTime())
			}
		);
	}

	/**
	 * @see org.sadun.util.polling.PollManager#directoryLookupEnded(org.sadun.util.polling.DirectoryLookupEndEvent)
	 */
	public void directoryLookupEnded(DirectoryLookupEndEvent evt) {
		try {
			invoke(new String [] {
				"DirectoryLookupEnded", 
				DateFormat.getDateTimeInstance().format(new Date(evt.getTime())),
				evt.getDirectory().getCanonicalPath()
				}
			);
		} catch (IOException e) {
			e.printStackTrace(System.err);
			System.err.println("Problem in getting the canonical path for <directory lookup end> event");
		}
	}

	/**
	 * @see org.sadun.util.polling.PollManager#directoryLookupStarted(org.sadun.util.polling.DirectoryLookupStartEvent)
	 */
	public void directoryLookupStarted(DirectoryLookupStartEvent evt) {
		try {
			invoke(new String [] {
				"DirectoryLookupStarted", 
				DateFormat.getDateTimeInstance().format(new Date(evt.getTime())),
				evt.getDirectory().getCanonicalPath()
				}
			);
		} catch (IOException e) {
			e.printStackTrace(System.err);
			System.err.println("Problem in getting the canonical path for <directory lookup start> event");
		}
	}

	/**
	 * @see org.sadun.util.polling.PollManager#exceptionDeletingTargetFile(java.io.File)
	 */
	public void exceptionDeletingTargetFile(File target) {
		try {
			invoke(new String [] {
				"ExceptionDeletingTargetFile", 
				target.getCanonicalPath()
				}
			);
		} catch (IOException e) {
			e.printStackTrace(System.err);
			System.err.println("Problem in getting the canonical path for <exception deleting target file> event");
		}
	}

	/**
	 * @see org.sadun.util.polling.PollManager#exceptionMovingFile(java.io.File, java.io.File)
	 */
	public void exceptionMovingFile(File file, File dest) {
		try {
			invoke(new String [] {
				"ExceptionMovingTargetFile", 
				file.getCanonicalPath(),
				dest.getCanonicalPath()
				}
			);
		} catch (IOException e) {
			e.printStackTrace(System.err);
			System.err.println("Problem in getting the canonical path for <exception moving target file> event");
		}
	}

	/**
	 * @see org.sadun.util.polling.PollManager#fileFound(org.sadun.util.polling.FileFoundEvent)
	 */
	public void fileFound(FileFoundEvent evt) {
		try {
			invoke(new String [] {
				"FileFound", 
				DateFormat.getDateTimeInstance().format(new Date(evt.getTime())),
				evt.getDirectory().getCanonicalPath(),
				evt.getFile().getCanonicalPath(),
				}
			);
		} catch (IOException e) {
						e.printStackTrace(System.err);
			System.err.println("Problem in getting the canonical path for <file found> event");
		}
	}

	/**
	 * @see org.sadun.util.polling.PollManager#fileMoved(org.sadun.util.polling.FileMovedEvent)
	 */
	public void fileMoved(FileMovedEvent evt) {
		try {
			invoke(new String [] {
				"FileMoved", 
				DateFormat.getDateTimeInstance().format(new Date(evt.getTime())),
				evt.getOriginalPath().getCanonicalPath(),
				evt.getMovedFile().getDestinationPath().getCanonicalPath()
				}
			);
		} catch (IOException e) {
						e.printStackTrace(System.err);
			System.err.println("Problem in getting the canonical path for <file moved> event");
		}
	}
	
	/**
	 * @see org.sadun.util.polling.PollManager#fileSetFound(org.sadun.util.polling.FileSetFoundEvent)
	 */
	public void fileSetFound(FileSetFoundEvent evt) {
		try {
			File [] files = evt.getFiles();
			if (files.length==0) return;
			String [] params = new String[files.length+3];
			
			params[0]="FileSetFound";
			params[1]=DateFormat.getDateTimeInstance().format(new Date(evt.getTime()));
			params[2]=evt.getDirectory().getCanonicalPath();
			for(int i=0;i<files.length;i++) {
				params[i+3]=files[i].getCanonicalPath();
			}
			invoke(params);
		} catch (IOException e) {
						e.printStackTrace(System.err);
			System.err.println("Problem in getting the canonical path for <file moved> event");
		}
	}
	
	public static void main(String args[]) throws Exception {
		DirectoryPoller poller = new DirectoryPoller(new File("c:\\temp"));
		ScriptedPollManager pm = new ScriptedPollManager(poller, "c:\\test.bat");
		poller.addPollManager(pm);
		poller.setAutoMove(true);
		poller.setPollInterval(1000);
		poller.start();
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜精品在线| 亚洲一区二区三区不卡国产欧美| 九九**精品视频免费播放| 欧美高清www午色夜在线视频| 亚洲bdsm女犯bdsm网站| 日韩一级大片在线观看| 经典三级视频一区| 国产精品美女www爽爽爽| 91传媒视频在线播放| 日韩**一区毛片| 国产日产欧产精品推荐色| 成人免费看黄yyy456| 亚洲一级片在线观看| 欧美一区二区三区思思人| 国产精品自拍三区| 亚洲精品国产第一综合99久久| 欧美精品日韩精品| 丁香婷婷深情五月亚洲| 亚洲乱码国产乱码精品精的特点| 欧美精品一卡两卡| 51精品国自产在线| 午夜精品久久久久久不卡8050| 精品少妇一区二区三区在线播放| 成人性生交大片免费看在线播放| 国产精品蜜臀av| 欧美日韩大陆一区二区| 另类小说视频一区二区| 亚洲欧洲av一区二区三区久久| 欧美在线免费播放| 国产一区91精品张津瑜| 亚洲综合激情网| 久久久99久久| 制服视频三区第一页精品| 成人国产精品免费网站| 婷婷亚洲久悠悠色悠在线播放| 欧美经典一区二区| 欧美久久久一区| 91香蕉视频污| 国产乱子伦一区二区三区国色天香| 亚洲人成在线播放网站岛国| ww亚洲ww在线观看国产| 欧美日韩不卡一区| 99久久亚洲一区二区三区青草| 奇米精品一区二区三区在线观看 | 成人av资源网站| 免费日本视频一区| 一区二区三区在线视频观看| 久久九九全国免费| 欧美日本在线看| 91麻豆国产精品久久| 丁香网亚洲国际| 国产在线一区观看| 麻豆国产91在线播放| 五月天一区二区| 亚洲一区二区视频在线观看| 国产精品美女一区二区| 国产亚洲婷婷免费| 欧美变态凌虐bdsm| 91精品国产综合久久精品图片| 欧美在线观看视频一区二区 | 韩国三级在线一区| 五月婷婷欧美视频| 亚洲成人免费视频| 亚洲综合色成人| 一二三区精品视频| 日韩美女久久久| 亚洲啪啪综合av一区二区三区| 欧美激情中文字幕| 国产人妖乱国产精品人妖| 久久久91精品国产一区二区精品| 精品国内二区三区| 久久久www成人免费毛片麻豆| 日韩美女天天操| 日韩精品专区在线影院观看| 欧美一区二区三区播放老司机| 777久久久精品| 日韩午夜激情电影| 久久se这里有精品| 亚洲综合久久久久| 亚洲国产成人av好男人在线观看| 一区二区激情视频| 午夜国产精品一区| 另类欧美日韩国产在线| 国产一区三区三区| 国产91精品一区二区麻豆网站| 成人激情电影免费在线观看| av中文字幕一区| 欧美在线免费视屏| 在线电影一区二区三区| 日韩欧美一二三区| 欧美极品美女视频| 一区二区三区国产豹纹内裤在线| 亚洲成av人片www| 久久草av在线| 99久久久精品免费观看国产蜜| 在线观看亚洲a| 日韩亚洲欧美高清| 在线看一区二区| 日韩视频免费直播| 中文字幕乱码亚洲精品一区| 亚洲精品精品亚洲| 美女在线一区二区| 粉嫩绯色av一区二区在线观看| 一道本成人在线| 日韩一区二区三区四区 | www.在线成人| 欧美日韩国产美女| www日韩大片| 一区二区三区在线免费播放 | 日韩精品一二区| 国产精品一级二级三级| 91福利国产精品| 久久日韩精品一区二区五区| 亚洲视频免费看| 免费观看在线综合色| av资源网一区| 日韩欧美国产一区在线观看| 国产精品视频线看| 天天综合天天做天天综合| 国产精品一二三四| 欧美精品久久久久久久久老牛影院| 久久久久国产免费免费| 午夜精品久久久久久久99水蜜桃| 国产精品一区二区久久精品爱涩| 欧美日韩国产a| 中文字幕亚洲精品在线观看| 日韩精品成人一区二区在线| 波多野结衣中文字幕一区| 精品日韩在线一区| 亚洲成人你懂的| thepron国产精品| 久久色在线视频| 日本不卡在线视频| 欧美在线色视频| 中文字幕一区二区三区乱码在线| 蜜臀av一区二区在线观看| 91电影在线观看| 中文一区在线播放| 激情都市一区二区| 欧美一级精品大片| 亚洲制服欧美中文字幕中文字幕| 成人综合激情网| 久久人人爽爽爽人久久久| 日韩影院免费视频| 欧美日韩黄色一区二区| 亚洲欧美另类久久久精品2019| 国产精品一二一区| 久久久综合激的五月天| 麻豆免费精品视频| 欧美欧美欧美欧美| 午夜私人影院久久久久| 欧美性生活大片视频| 亚洲三级在线播放| eeuss鲁片一区二区三区在线看| 国产网站一区二区三区| 国内精品伊人久久久久av一坑| 欧美一区2区视频在线观看| 亚洲一区二区影院| 欧美视频一区二区| 亚洲国产美国国产综合一区二区| 一本色道a无线码一区v| 亚洲区小说区图片区qvod| 91一区二区在线| 亚洲欧美日韩久久| 99久久国产综合精品麻豆| 亚洲视频你懂的| 91豆麻精品91久久久久久| 艳妇臀荡乳欲伦亚洲一区| 在线观看91视频| 亚洲国产成人高清精品| 欧美日韩日日摸| 午夜电影一区二区三区| 日韩限制级电影在线观看| 麻豆一区二区三区| 久久午夜免费电影| 丁香婷婷深情五月亚洲| 亚洲色欲色欲www在线观看| 色老综合老女人久久久| 亚洲成精国产精品女| 制服视频三区第一页精品| 久久爱www久久做| 欧美国产精品专区| 色综合久久中文综合久久97| 一区二区三区欧美| 欧美一卡2卡3卡4卡| 国产99久久久久久免费看农村| 亚洲婷婷在线视频| 欧美视频第二页| 久久精品国产在热久久| 国产精品久线观看视频| 在线亚洲+欧美+日本专区| 日本最新不卡在线| 久久亚洲免费视频| 一本色道久久综合亚洲91| 日韩av午夜在线观看| 国产片一区二区三区| 欧洲精品中文字幕| 国产一区二区美女诱惑| 亚洲精品国产无天堂网2021 | 成人毛片老司机大片|