Java实现Windows的dir命令

简介:
为做一个文件管理系统所实现的一个很粗糙的小例子,感觉还是有研究价值的。
 
下面是源代码:
 
import java.util.Comparator; 
import java.io.File; 

/** 
* Created by IntelliJ IDEA.<br> 
* <b>User</b>: leizhimin<br> 
* <b>Date</b>: 2008-7-18 22:43:44<br> 
* <b>Note</b>: 文件排序,按照先目录后文件方式排 
*/
 
public  class FileComparator  implements Comparator<File> { 

     public  int compare(File o1, File o2) { 
         if (o1.isDirectory() && o2.isDirectory())  return o1.compareTo(o2); 
         else  if(o1.isDirectory() && !o2.isDirectory())  return -1; 
         else  if(!o1.isDirectory() && o2.isDirectory())  return 1; 
         else  return o1.compareTo(o2); 
    } 
}
 
 
import java.io.File; 
import java.util.*; 
import java.sql.Date; 
import java.text.DateFormat; 
import java.text.SimpleDateFormat; 
import java.text.NumberFormat; 

/** 
* Created by IntelliJ IDEA.<br> 
* <b>User</b>: leizhimin<br> 
* <b>Date</b>: 2008-7-18 22:02:30<br> 
* <b>Note</b>: 模拟dir测试的例程 
*/
 
public  class TestFile { 
     public  static DateFormat df =  new SimpleDateFormat( "yyyy-MM-dd HH:mm"); 
     int nl = 18; 

     public  static  void main(String args[]) { 
        test(); 
    } 

     public  static  void test() { 
        System.out.println( "----------test()----------"); 
        File file =  new File( "F:\\SOFT_DEV"); 
//        file.isDirectory(); 
//        System.out.println(File.pathSeparator); 
//        System.out.println(File.pathSeparatorChar); 
//        System.out.println(File.separator); 
//        System.out.println(File.separatorChar); 

        FileComparator fc =  new FileComparator(); 
        File[] lf = file.listFiles(); 
        Arrays.sort(lf, fc);     //数组排序 
         for (File f : lf) { 
            String dataStr = df.format( new Date(f.lastModified())); 

             if (f.isDirectory()) { 
                System.out.print(dataStr +  "  <DIR>       "); 

            }  else { 
                System.out.print(dataStr +  "  " + getFormatString(String.valueOf(NumberFormat.getInstance().format(f.length())))); 
            } 
            System.out.println( "  " + f.getName()); 
        } 

    } 

     //格式化函数 
     public  static String getFormatString(String s) { 
         int nb = 12 - s.length(); 
        StringBuilder sb =  new StringBuilder(); 
         if (nb > 0) { 
             for ( int n = 1; n <= nb; n++) { 
                sb = sb.append( " "); 
            } 
        } 
         return sb.append(s).toString(); 
    } 
}
 
运行效果:
----------test()---------- 
2008-06-20 13:01  <DIR>         ACDSee v3.1 SR1 美化版 Plus 
2008-06-20 13:01  <DIR>         MyEclipse Enterprise Workbench 6.0.1 GA 
2008-06-20 13:02  <DIR>         PLSQL Developer v7.1.4 英文版 
2008-06-20 13:02  <DIR>         SQLyog Enterprise v6.5 英文版 
2008-07-02 18:04  <DIR>         staruml-5.0 
2008-07-07 18:45  <DIR>         Stylus Studio 2008 XML Enterprise Suite v9.1.1050g 官方中文企业版 
2008-06-20 13:02  <DIR>         Sybase.PowerDesigner.v12.5.0.2169 
2008-06-20 13:02  <DIR>         输入法设置工具 IME TOOL v2.5.9 
2008-04-10 18:56    23,510,720  dotnetfx.exe 
2006-06-15 11:22    54,666,120  idea-5.1.2.exe 
2008-03-18 19:16    90,648,728  idea-7.0.3.exe 
2008-04-11 16:08       428,538  IEDevToolBarSetup.rar 
2006-06-18 00:00       148,480  IntJ512kg.exe 
2008-01-31 11:12    54,278,424  jdk-1_5_0_14-windows-i586-p.exe 
2008-05-29 19:07   184,893,774  MyEclipse_6.0.1GA_E3.3.1_Installer.exe 
2008-06-24 11:33   461,013,238  MyEclipse_6.5.0GA_E3.3.2_Installer.exe 
2008-05-30 08:15     4,320,768  mysql-connector-odbc-5.1.4-win32.msi 
2007-02-04 11:08   541,075,612  Rational Rose Enterprise V7.0.nrg 
2001-05-26 21:31        23,264  rational_perm.dat 
2008-04-14 10:39    10,000,152  spket-1.6.11.jar 
2008-06-27 14:45       113,784  tcpTrace081.zip 
2008-05-12 15:31    28,847,842  ToadForMySQLFreeware_3.1.1.462.zip 
2008-04-12 09:57     1,833,339  UltraISO 9.12 简体中文版.rar 
2008-06-11 14:39    16,672,737  Windows Live Messenger(MSN) 8.5.1302.1018_简体去广告搜索多开版_微软聊天工具.rar 
 
blog的在线编辑器显示好像有点问题,贴个图吧:

本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/89289,如需转载请自行联系原作者
相关文章
|
1月前
|
消息中间件 存储 NoSQL
java连接redis和基础操作命令
通过以上内容,您可以掌握在Java中连接Redis以及进行基础操作的基本方法,进而在实际项目中灵活应用。
111 30
|
22天前
|
Java
Java中执行命令并使用指定配置文件的最佳实践
通过本文的介绍,您可以了解如何在Java中使用 `ProcessBuilder`执行系统命令,并通过指定配置文件、设置环境变量和重定向输入输出流来控制命令的行为。通过这些最佳实践,可以确保您的Java应用程序在执行系统命令时更加健壮和灵活。
30 7
|
2月前
|
网络协议 数据建模 数据安全/隐私保护
网安快速入门之Windows命令
本文简要介绍了Windows命令行中常用的11个命令,帮助快速入门网络安全和系统管理。这些命令包括:`help`(获取命令帮助)、`copy`(复制文件)、`dir`(显示目录内容)、`cd`(更改当前目录)、`type`(显示文本文件内容)、`del`(删除文件)、`ipconfig`(查看网络配置)、`net`(用户和组管理)、`netstat`(显示网络连接)、`tasklist`(显示进程信息)和`sc`(服务控制)。每个命令都有其特定用途,掌握它们可以大大提高工作效率和系统维护能力。
|
4月前
|
Java Shell Windows
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
105 1
|
4月前
|
存储 安全 数据库
适用于 Windows 的管理命令
以下命令可用于管理 Rational® Synergy。
37 1
|
5月前
|
Java Windows
JAVA 常用的 DOS 命令
【10月更文挑战第15天】DOS 命令是 Java 开发中不可或缺的工具,掌握这些命令可以提高开发效率和操作便利性。
64 3
|
5月前
|
人工智能 监控 安全
掌握Windows管理利器:WMI命令实战
本文介绍了Windows Management Instrumentation (WMI) 的基本概念和用途,通过多个实用的`wmic`命令示例,如获取CPU信息、查看操作系统详情、管理服务、检查磁盘空间等,展示了WMI在系统维护中的强大功能。适合IT专业人士学习和参考。
234 4
|
5月前
|
Windows
Windows系统命令dir使用详解
Windows系统命令dir使用详解
344 2
|
5月前
|
Java 关系型数据库 MySQL
java控制Windows进程,服务管理器项目
本文介绍了如何使用Java的`Runtime`和`Process`类来控制Windows进程,包括执行命令、读取进程输出和错误流以及等待进程完成,并提供了一个简单的服务管理器项目示例。
76 1
|
5月前
|
运维 监控 Java
使用jps命令查看Java进程
`jps`是Java开发者和系统管理员的得力助手,它简化了Java进程监控的过程,使得快速检查应用运行状态变得轻而易举。通过合理利用其提供的参数,可以高效地进行故障排查、性能监控及日常管理任务,确保Java应用稳定运行。
280 2