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

📄 folderchannel.java

📁 JAVA邮件系统
💻 JAVA
字号:
/* www.365do.com 个人定制模块 2000.7.16
 *
 */

import java.io.*;
import java.text.*;
import java.util.*;
import java.sql.*;

/*
 * 从Channel派生的书签类
 *
 * @author Liyan
 */

public class FolderChannel extends Channel
{
	//在构造函数中命名本频道
	FolderChannel()
	{
		channelName = "文件夹";
	}
	
	
//实现频道栏的界面:
	
	public boolean editChannel(Person p,HtmlOut Html)
	{
		return true;
	}
	
	//把字串中的\变成"+File.separatorChar +"
	public String makeStr(String sTmp)
	{
		int nB=0,nE=sTmp.indexOf(""+File.separatorChar +"");
		String sOk="";
		while(nE!=-1){
			sOk+=sTmp.substring(nB,nE+1)+""+File.separatorChar +"";
			nB=nE+1;
			nE=sTmp.indexOf(""+File.separatorChar +"",nB);
		}
		sOk+=sTmp.substring(nB,sTmp.length());
		return sOk;
	}
	
	//在主界面的频道显示:
	public void makeChannel(Person p,TemplateList tempList,HtmlOut desHtml)
	{
		//定义单个模板
		SingleTemplate st,st2;
		String sFolder=CommonMethods.GetUserFolderdir();
		String sUserFolder=p.getName()+""+File.separatorChar +"";

		//在全局变量tempList中找到"频道"模板
		st = tempList.searchTemplate("频道2");
		if(st==null) return ;
		
		
		int nKey = st.getKeyNum ();
		String sKey ;
		for(int j=0;j<nKey;j++){
			desHtml.addString (st.getStringAt (j));
			sKey = st.getKeyAt (j);
			if( sKey .compareTo("cgi-path")==0 )
				desHtml.addString (CommonMethods.sHostNameCGI);

			if( sKey.compareTo("标题")==0 )
				desHtml.addString (	channelName );

			if( sKey.compareTo("链接")==0 )
				desHtml.addString (	"FolderServlet" );
			
			if( sKey.compareTo("CloseCGI")==0 )
				desHtml.addString("CloseChannel?channel=folder" );
			
			if( sKey.compareTo("内容")==0 ) {
			//另外一个模板:
				String channelContent = "",sLink[],sAddition[];
				int nLarge=5;
				st2 = tempList.searchTemplate("文件夹");
				if(st2==null) {
					return ;
				}
				sLink=new String[nLarge];
				//sAddition=new String[4];
				int nKey2 = st2.getKeyNum (),i=1;

				//读取文件夹信息:
				Folder myFolder = new Folder(sFolder+sUserFolder);
				String[] sName=myFolder.showUserFolder();
				String sKey2 ;
				if(sName!=null)
					for(int l=0;l<sName.length;l++){
						for(int k=0;k<nKey2;k++){
							desHtml.addString (st2.getStringAt (k));
							sKey2 = st2.getKeyAt (k);
							if( sKey2 .compareTo("cgi-path")==0 )
								desHtml.addString (CommonMethods.sHostNameCGI);
							if( sKey2.compareTo("标记")==0 ){
								Folder tmpFolder = new Folder(sFolder+sUserFolder+sName[l]);
								if(tmpFolder.isDirection())
									desHtml.addString("FolderServlet?into");
								else
									desHtml.addString("DownloadServlet/"+sName[l]+"?download");
								tmpFolder=null;
							}
							if( sKey2.compareTo("名称")==0 )
								desHtml.addString(sName[l]);
							if( sKey2.compareTo("图标")==0){
								Folder tmpFolder = new Folder(sFolder+sUserFolder+sName[l]);
								if(tmpFolder.isDirection())
									desHtml.addString("/img/icon_folder.gif");
								else
									desHtml.addString("/img/icon_file.gif");
								tmpFolder=null;
							}
						}
				desHtml.addString (st2.getEndString());
				}
			}
		}
		desHtml.addString (st.getEndString());
		return;
	}
	
	//Channel自身方法:
	public void makeChannelContents(Person p,TemplateList tempList,HtmlOut desHtml)
	{
		return ;
	}
	
	
//Folder自己的界面
	
	public void makeFolder_Main(Person p,TemplateList tempList,HtmlOut desHtml,String relativeFolder,String sHtmlOut)
	{
		System.out.println (sHtmlOut);
		SingleTemplate st,st2;
		String channelContent = "",sFolderName="",sBasePath="";
		st = tempList.searchTemplate("ROOT");
		if(st==null) {
			desHtml.setErrorID (desHtml.SINGLE_TEMPLATE_NOTFIND ,
								"","模板错误","Login");
			return ;
		}
		
		TemplateList tempList2=CommonMethods.getFolder_ShowTemplate();
		st2= tempList2.searchTemplate("ROOT");
		if(st2==null) {
			return ;
		}
		
		sBasePath=CommonMethods.GetUserFolderdir()+p.getName();
		sFolderName=sBasePath+relativeFolder;
		String sKey="",sKey2;
		int nKey=st.getKeyNum(),nKey2;
		for(int i=0;i<nKey;i++){
			desHtml.addString(st.getStringAt(i));
			sKey=st.getKeyAt(i);
			System.out.println (sKey);
			if(sKey.compareTo("cgi-path")==0){
				desHtml.addString(CommonMethods.sHostNameCGI);
			}
			
			if(sKey.compareTo("已用空间")==0)
				desHtml.addString(""+Folder.getFileLength(sBasePath));
			
			if(sKey.compareTo("目录")==0)
				desHtml.addString(relativeFolder);
			
			if(sKey.compareTo("当前目录名")==0)
				desHtml.addString("我的文件夹:"+relativeFolder);
			
			if(sKey.compareTo("添加/编辑")==0)
				desHtml.addString(sHtmlOut);
			
			if(sKey.compareTo("上层目录")==0){
				String sTmp="";
				Folder myFolder = new Folder(sFolderName);
				if(myFolder.getPath().compareTo(sBasePath)==0){
					myFolder=null;
					//desHtml.addString("FolderServlet");
				}
				else{
					sTmp=myFolder.getParent();
					sTmp=sTmp.substring(sBasePath.length());
					//desHtml.addString("FolderServlet?into="+sTmp);
					if(sTmp.compareTo("")!=0)
						//desHtml.addString(""+File.separatorChar +""+this.makeStr(sTmp));
						desHtml.addStringPlain(this.makeStr(sTmp));
				}
			}
			
			if(sKey.compareTo("内容")==0){
				//文件的操作:
				System.out.println (sFolderName);
				Folder myFolder = new Folder(sFolderName);
				String[] sShowFolder=myFolder.showFolder();
				if(sShowFolder==null){
					myFolder=null;
					continue;
				}
				nKey2=st2.getKeyNum();
				for(int k=0;k<sShowFolder.length;k++){
					for(int j=0;j<nKey2;j++){
						desHtml.addString(st2.getStringAt(j));
						sKey2=st2.getKeyAt(j);
						if(sKey2.compareTo("cgi-path")==0){
							desHtml.addString(CommonMethods.sHostNameCGI);
						}
						if(sKey2.compareTo("名称")==0)
							desHtml.addString(sShowFolder[k]);
						if( sKey2.compareTo("图标")==0){
								Folder tmpFolder = new Folder(sFolderName+""+File.separatorChar +""+sShowFolder[k]);
								if(tmpFolder.isDirection())
									desHtml.addString("/img/folder.gif");
								else
									desHtml.addString("/img/file.gif");
								tmpFolder=null;
						}
						if( sKey2.compareTo("链接")==0){
								Folder tmpFolder = new Folder(sFolderName+""+File.separatorChar +""+sShowFolder[k]);
								if(tmpFolder.isDirection())
									desHtml.addString("FolderServlet?into="+relativeFolder+""+File.separatorChar +""+sShowFolder[k]);
								else
									desHtml.addString("DownloadServlet/"+sShowFolder[k]+"?download="+relativeFolder+""+File.separatorChar +""+sShowFolder[k]);
								tmpFolder=null;
						}
					}
					desHtml.addString(st2.getEndString());
				}
			}
		}
		desHtml.addString(st.getEndString());
	}


}

⌨️ 快捷键说明

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