📄 folderchannel.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 + -