文件排序-java代码
package text;
/**
*
* @author 让痛苦痛苦
* @说明:这是RMI将一个常规的类打包。
* @prama 远程调用,文件排序代码
* @pramat 说明: 它从目录中截取文件系统,列出文件名,按大小排列文件,以及最近访问的日期
* @pramat 这种实用的类在定位文件和排列文件作为备份时非常有用。它还可以用来生成最大文件清单处理其他任务
* @pramat 该任务可能使多疑的系统管理员在晚上不睡觉——如果用户在远程访问他们的话所有特点将非常精细.
*
*/
import java.io.*;
/**
*
* @author 让痛苦痛苦
* @title FileSystemProfiler
* @description : Provides a listing of files in a directory ,with size values and the last
* modified date of the file as a long value , indicating time since the epcch
* (00:00:00 CMT,Januay 1,1970).
*
*/
public class FileSystemProfiler {
private String lineSeparator="";
private String nameSizeSeparator="";
private StringBuffer sbFl;
public FileSystemProfiler()
{
lineSeparator =System.getProperty("line.separator");
nameSizeSeparator="分割";
sbFl=new StringBuffer();
}
public String getNameSizeSeparator() {
return nameSizeSeparator;
}
public void setNameSizeSeparator(String newnameSizeSeparator) {
if(newnameSizeSeparator!=null)
nameSizeSeparator = newnameSizeSeparator;
}
public String getFileListWithSizesDates()
{
return sbFl.toString();
}
public void clearFileListBuffer()
{
sbFl=new StringBuffer();
//No easy way to erase SB
}
public void recurseInDirFrom(String dirItem)
{
File file;
String list[];
file=new File(dirItem);
if(file.isDirectory())
{
list=file.list();
for(int i=0;i<list.length;i++)
{
recurseInDirFrom(dirItem+File.separatorChar+list[i]);
}
}
try {
if(file.isDirectory())
{
sbFl.append(file.getCanonicalPath()+lineSeparator);
}
else
{
sbFl.append(file.getCanonicalPath()+nameSizeSeparator+file.length()
+nameSizeSeparator+file.lastModified()+lineSeparator);
}
} catch (IOException ioe) {
ioe.printStackTrace();
// TODO: handle exception
}
}
/**
* ex. to recurse from the cueernt directroy java FileSystemListAndSize.
*/
public static void main(String args[]) throws Exception
{
try {
FileSystemProfiler d=new FileSystemProfiler();
if(args.length>0)
{
System.out.println("recuesive Dir from "+args[0]);
d.recurseInDirFrom(args[0]);
}
else
{
d.recurseInDirFrom(".");
System.out.println(d.getFileListWithSizesDates());
}
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
}
/**
* @author 让痛苦痛苦
* @prama 说明: FileSystemProfiler是从www.rgagnon.com的Real Gaganon提供的代码片段中得到的启发
*
*/
/**
* 从该类中我们可以的出想要远程输出的公用方法。通常接口类是由I前缀指定的。
* interface关键字显示了通常应该在何处看到指定的类(public interface而不是public class)。
* 上面只显示了IRemoteFileSystemProfiler类,
* 注意此函数只进行了定义
*/
}