📄 deallocalfile.java
字号:
package container.staticsou;
import java.io.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.text.*;
import java.util.Locale;
import java.util.Date;
import http.*;
public class dealLocalFile{
File localfile=null;
String RequestSouc;
byte[] GetContent;
boolean ListDirectory=true;
public dealLocalFile(String RequestSouc){
boolean defaultname=false;
this.RequestSouc=RequestSouc;
if ( RequestSouc.endsWith("/") ){
String fn[]=jwsconf.HttpConfM("DirectoryIndex");
for (int i=0;i<fn.length;i++){
localfile = new File(jwsconf.HttpConf("DocumentRoot"),RequestSouc+fn[i]);
if ( FileExists()==2 ){
defaultname=true;
break;}
}//end for
if (defaultname==false){
localfile = new File( jwsconf.HttpConf("DocumentRoot"),RequestSouc.substring(0,RequestSouc.length()-1) );}
}else{
localfile=new File(jwsconf.HttpConf("DocumentRoot"),RequestSouc);
if ( FileExists()==1){
ListDirectory=false;}
}
}
public byte[] GetContent(){
if( localfile.isDirectory() ){
DirectoryList();
}else{
ReadLocalFile();}
return GetContent;
}//end GetContent()
private void ReadLocalFile(){
GetContent = new byte[(int) localfile.length()];
try{
FileInputStream readfile = new FileInputStream(localfile);
try{
readfile.read( GetContent,0,readfile.available() );
readfile.close();
}catch (IOException e){}
}catch (FileNotFoundException e){}
}//end ReadLocalFile()
private void DirectoryList(){
String filenames[]=localfile.list();
String DirectoryHtml;
File checkf;
String DataString="";
String ParentDirectory=RequestSouc.substring(0, RequestSouc.lastIndexOf('/',RequestSouc.length()-2) );
DirectoryHtml="<HTML><HEAD><TITLE>Index of "+RequestSouc+"</TITLE></HEAD><BODY>";
DirectoryHtml+="<H1>Index of "+RequestSouc+"</H1><PRE>";
DirectoryHtml+="<A HREF=\"?N=D\">Name</A>\t\t\t<A HREF=\"?M=A\">Last modified</A>\t\t<A HREF=\"?S=A\">Size</A> <A HREF=\"?D=A\">Description</A>\r\n";
DirectoryHtml+="<HR><A HREF=\""+ParentDirectory+"/\">Parent Directory</A>\r\n";
for(int i=0;i<filenames.length;i++){
checkf = new File(jwsconf.HttpConf("DocumentRoot"),filenames[i]);
if ( checkf.isDirectory() ){
filenames[i]+='/';} //如果是目录就在后面加 '/'
// DataString = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss 'GMT'",Locale.SIMPLIFIED_CHINESE).format(new Date(checkf.lastModified()));
DataString = new SimpleDateFormat("dd MMM yyyy HH:mm:ss 'GMT'",Locale.US).format(new Date(checkf.lastModified()));
DirectoryHtml+="<A HREF=\""+filenames[i]+"\">" + filenames[i] + "</A>\t\t\t"
+ DataString
+ "\t\t"
+ checkf.length() + "\r\n";
}
DirectoryHtml+="</PRE><HR></BODY></HTML>";
GetContent = DirectoryHtml.getBytes();
}
public int FileExists(){
if (localfile.exists() && localfile.isDirectory() && ListDirectory==true) {
return 1;}
if (localfile.exists() && !localfile.isDirectory()){
return 2;
}else{return 0;}
}//end FileExists()
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -