监控文件目录的变化 用两vector保存文件目录结构(就是所有文件)一个vector是现在的目录,另一个是1分钟前的目录。两进行比较,就就可以知道变化的情况了。挺感兴趣的,做好了能给我一份。[email protected] 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.lang.*;import java.util.*;import java.util.Enumeration;import java.util.Hashtable;import javax.naming.*;import javax.naming.directory.*;import java.io.*;import java.awt.*;import java.net.*;import javax.swing.*;public class DirWatcher implements Runnable{ private MainFrame mf; private String dir; private Vector newList; private Vector oldList; private Vector tempList; private int timeInt; public DirWatcher(MainFrame mf){ this.mf = mf; newList = new Vector(); oldList = new Vector(); tempList = new Vector(); } public void run(){ boolean isError = false; getDirName(); getTimeInt(); mf.setTDirColor(new Color(0,0,255)); mf.DirWatcherOutput("Watch directory [" + dir + "] start.") firstScan(); while(!isError){ scanDir(); readOldList(); if(compare()){ writeNewList(); } oldList.removeAllElements(); newList.removeAllElements(); try{ Thread.sleep(timeInt * 1000); } catch(InterruptedException e){ String dMessage = "Directory scanning thread was interrupted." + "\nDirectory Watcher stopped."; int dType = JOptionPane.ERROR_MESSAGE; String dTitle = "Scanning error:"; JOptionPane.showMessageDialog(null,dMessage,dTitle,dType); isError = true; } } } void getDirName(){ File file = new File(System.getProperty("user.dir") + "\\","gftp.cfg"); if(file.exists()){ try{ FileInputStream fin = new FileInputStream(file); BufferedReader freader = new BufferedReader(new InputStreamReader(fin)); freader.readLine(); freader.readLine(); String path = freader.readLine(); dir = path.substring(7); } catch(IOException e){ dir = "C:\\gridshare\\"; } } else{ dir = "C:\\gridshare\\"; } } void getTimeInt(){ File file = new File(System.getProperty("user.dir") + "\\","dirw.cfg"); if(file.exists()){ try{ FileInputStream fin = new FileInputStream(file); BufferedReader freader = new BufferedReader(new InputStreamReader(fin)); String temp = freader.readLine(); String timeint = temp.substring(11); timeInt = Integer.parseInt(timeint); } catch(IOException e){ timeInt = 30; } } else{ timeInt = 30; } } void totalScan(String dir,String ndir,Vector vlist,boolean flag){ File specDir = new File(dir); String[] plist = specDir.list(); for(int i = 0; i < plist.length; i++){ String pname = dir + "\\" + plist[i]; String npname = ndir + "/" + plist[i]; File file = new File(pname); if(file.isDirectory()){ totalScan(pname,npname,vlist,flag); } else{ vlist.addElement(npname); if(flag){ mf.DirWatcherOutput("Performing entry addtion for file: " + npname + "......"); addToLdap newAdd = new addToLdap(npname); String s = newAdd.add(); if(s.equals("none")){ mf.DirWatcherOutput("File entry for: " + npname + " added."); } else{ mf.DirWatcherOutput(s); } } } } } void firstScan(){ totalScan(dir,"",tempList,true); } void scanDir(){ totalScan(dir,"",newList,false); } void readOldList(){ for(int i = 0; i < tempList.size(); i++){ oldList.addElement(tempList.elementAt(i)); } } void writeNewList(){ tempList.removeAllElements(); for(int i = 0; i < newList.size(); i++){ tempList.addElement(newList.elementAt(i)); } } boolean compare(){ boolean flag = false; for(int i = 0; i < newList.size(); i++){ if(oldList.indexOf(newList.elementAt(i)) == -1){ postAddition(newList.elementAt(i)); flag = true; } } for(int i= 0; i < oldList.size(); i++){ if(newList.indexOf(oldList.elementAt(i)) == -1){ postDeletion(oldList.elementAt(i)); flag = true; } } return flag; } void postAddition(Object str){ mf.DirWatcherOutput("Performing entry addtion for file: " + str.toString() + "......"); addToLdap newAdd = new addToLdap(str.toString()); String s = newAdd.add(); if(s.equals("none")){ mf.DirWatcherOutput("File entry for: " + str.toString() + " added."); } else{ mf.DirWatcherOutput(s); } } void postDeletion(Object str){ mf.DirWatcherOutput("Performing entry deletion for file: " + str.toString() + "......"); deleteFromLdap newDelete = new deleteFromLdap(str.toString()); String s = newDelete.delete(); if(s.equals("none")){ mf.DirWatcherOutput("File entry for: " + str.toString() + " deleted."); } else{ mf.DirWatcherOutput(s); } } } 求根据指定分隔符号验证数据的正则表达式 模仿别人写的一段计算器,可是却实现不了 关于servlet启动的问题 floatValue()干什么用? 访问打包在JAR里的数据库问题 同构容器和异构容器的问题 怎么设置环境变量,使得能调用WEB SERVET类 java 2 基础类,哪里有完整的说明? cocia(高亚) 请进! 登陆界面 mysql下的引号问题 在servlet中 response.sendredirect 符号不认识
import java.util.*;
import java.util.Enumeration;
import java.util.Hashtable;
import javax.naming.*;
import javax.naming.directory.*;
import java.io.*;
import java.awt.*;
import java.net.*;
import javax.swing.*;
public class DirWatcher implements Runnable{
private MainFrame mf;
private String dir;
private Vector newList;
private Vector oldList;
private Vector tempList;
private int timeInt;
public DirWatcher(MainFrame mf){
this.mf = mf;
newList = new Vector();
oldList = new Vector();
tempList = new Vector();
}
public void run(){
boolean isError = false;
getDirName();
getTimeInt();
mf.setTDirColor(new Color(0,0,255));
mf.DirWatcherOutput("Watch directory [" + dir + "] start.")
firstScan();
while(!isError){
scanDir();
readOldList();
if(compare()){
writeNewList();
}
oldList.removeAllElements();
newList.removeAllElements();
try{
Thread.sleep(timeInt * 1000);
}
catch(InterruptedException e){
String dMessage = "Directory scanning thread was interrupted." +
"\nDirectory Watcher stopped.";
int dType = JOptionPane.ERROR_MESSAGE;
String dTitle = "Scanning error:";
JOptionPane.showMessageDialog(null,dMessage,dTitle,dType);
isError = true;
}
}
}
void getDirName(){
File file = new File(System.getProperty("user.dir") + "\\","gftp.cfg");
if(file.exists()){
try{
FileInputStream fin = new FileInputStream(file);
BufferedReader freader = new BufferedReader(new InputStreamReader(fin));
freader.readLine();
freader.readLine();
String path = freader.readLine();
dir = path.substring(7);
}
catch(IOException e){
dir = "C:\\gridshare\\";
}
}
else{
dir = "C:\\gridshare\\";
}
}
void getTimeInt(){
File file = new File(System.getProperty("user.dir") + "\\","dirw.cfg");
if(file.exists()){
try{
FileInputStream fin = new FileInputStream(file);
BufferedReader freader = new BufferedReader(new InputStreamReader(fin));
String temp = freader.readLine();
String timeint = temp.substring(11);
timeInt = Integer.parseInt(timeint);
}
catch(IOException e){
timeInt = 30;
}
}
else{
timeInt = 30;
}
}
void totalScan(String dir,String ndir,Vector vlist,boolean flag){
File specDir = new File(dir);
String[] plist = specDir.list();
for(int i = 0; i < plist.length; i++){
String pname = dir + "\\" + plist[i];
String npname = ndir + "/" + plist[i];
File file = new File(pname);
if(file.isDirectory()){
totalScan(pname,npname,vlist,flag);
}
else{
vlist.addElement(npname);
if(flag){
mf.DirWatcherOutput("Performing entry addtion for file: " + npname + "......");
addToLdap newAdd = new addToLdap(npname);
String s = newAdd.add();
if(s.equals("none")){
mf.DirWatcherOutput("File entry for: " + npname + " added.");
}
else{
mf.DirWatcherOutput(s);
}
}
}
}
}
void firstScan(){
totalScan(dir,"",tempList,true);
}
void scanDir(){
totalScan(dir,"",newList,false);
}
void readOldList(){
for(int i = 0; i < tempList.size(); i++){
oldList.addElement(tempList.elementAt(i));
}
}
void writeNewList(){
tempList.removeAllElements();
for(int i = 0; i < newList.size(); i++){
tempList.addElement(newList.elementAt(i));
}
}
boolean compare(){
boolean flag = false;
for(int i = 0; i < newList.size(); i++){
if(oldList.indexOf(newList.elementAt(i)) == -1){
postAddition(newList.elementAt(i));
flag = true;
}
}
for(int i= 0; i < oldList.size(); i++){
if(newList.indexOf(oldList.elementAt(i)) == -1){
postDeletion(oldList.elementAt(i));
flag = true;
}
}
return flag;
}
void postAddition(Object str){
mf.DirWatcherOutput("Performing entry addtion for file: " + str.toString() + "......");
addToLdap newAdd = new addToLdap(str.toString());
String s = newAdd.add();
if(s.equals("none")){
mf.DirWatcherOutput("File entry for: " + str.toString() + " added.");
}
else{
mf.DirWatcherOutput(s);
}
}
void postDeletion(Object str){
mf.DirWatcherOutput("Performing entry deletion for file: " + str.toString() + "......");
deleteFromLdap newDelete = new deleteFromLdap(str.toString());
String s = newDelete.delete();
if(s.equals("none")){
mf.DirWatcherOutput("File entry for: " + str.toString() + " deleted.");
}
else{
mf.DirWatcherOutput(s);
}
}
}